學長告訴我饥悴,大廠MySQL都是通過SSH連接的

大家好,我是咔咔 不期速成,日拱一卒

一西设、背景

之前待的幾個公司瓣铣,數(shù)據(jù)庫、服務(wù)器權(quán)限都是給所有后端直接拉滿的贷揽,但也會出現(xiàn)員工離職的情況棠笑,每次有人離職時都需要改數(shù)據(jù)庫密碼、服務(wù)器密碼禽绪。

每次密碼修改后得告知所有開發(fā)修改本地密碼蓖救,但這樣的事情也不是經(jīng)常發(fā)生,公司雖小但很穩(wěn)定印屁。

假設(shè)你所待的公司是一個開發(fā)非常多的公司循捺,有可能你待了一年還沒認識全,人員流動的速度也非承廴耍快从橘,這時上面那種方案的執(zhí)行成本就非常高了。

若此時把這個問題拋給你础钠,讓你解決你會有什么方案恰力?

接下來給大家介紹兩種方案,一種傳統(tǒng)方案另一種是通過SSH來實現(xiàn)的旗吁。

Snipaste_2022-08-08_22-25-02.png

二踩萎、傳統(tǒng)方案

MySQL版本:8.0.26

其中最簡單的方案就是給每個人在數(shù)據(jù)庫添加一個賬號,具體步驟如下:

創(chuàng)建新用戶

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">create user "kaka"@"%" identified by 'qwerty123456'; </pre>

其中kaka為自定義的用戶名很钓;%為登錄域名香府,host為'%'時表示為 任意IP,為localhost時表示本機码倦,或者填寫指定的IP地址回还;qwerty123456為密碼

為用戶授權(quán)

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`grant all privileges on kaka.* to "kaka"@"%" with grant option;

grant all on . to "kaka"@"%";` </pre>

其中kaka.*,kaka為數(shù)據(jù)名,*為所有表叹洲,如果想授權(quán)全部表就把kaka.*寫成*.*柠硕,當然這里是以開發(fā)庫為基礎(chǔ)的,所有的權(quán)限都得給运提。當前也可以給予部分權(quán)限蝗柔。

刷新權(quán)限

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">flush privileges; </pre>

使用用戶名:kaka進行登錄

發(fā)現(xiàn)kaka用戶只有兩個庫,kaka庫就是授權(quán)的庫民泵,當切換系統(tǒng)庫時發(fā)現(xiàn)是沒有權(quán)限的癣丧。

在切到kaka庫,是可以做正常的curd操作的

[圖片上傳失敗...(image-bfe786-1660008288091)]

給予部分權(quán)限

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`grant update on kaka.* to "kaka"@"%";

flush privileges;` </pre>

若想給多個權(quán)限栈妆,則逗號隔開即可胁编,update,select,insert ....厢钧,執(zhí)行完切記需要刷新權(quán)限,否則不會生效

[圖片上傳失敗...(image-fdcce9-1660008288091)]

撤銷全部權(quán)限

這塊有點小插曲嬉橙,當執(zhí)行撤銷命令后報了這樣一個錯

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation </pre>

查閱了一下官方文檔早直,原因是由于root用戶沒有SYSTEM_USER權(quán)限,把權(quán)限加入后即可解決

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">grant system_user on *.* to 'root'; </pre>

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`revoke all privileges ,grant option from kaka;

revoke all privileges on kaka.* from kaka;

flush privileges;` </pre>

插銷部分權(quán)限

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">revoke select on kaka.* from kaka; </pre>

kaka.*為表名市框,kaka為用戶名

員工離職刪除用戶即可

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">drop from kaka; </pre>

kaka 為用戶名

嗯霞扬,成功的把MySQL權(quán)限給復(fù)習了一遍.....

三、通過SSH隧道連接MySQL數(shù)據(jù)庫

準備工作

主機名 角色 IP 端口
kaka1 MySQL主機 47.93.12.204 3306
kaka2 遠程服務(wù)器 8.142.40.202 33888

修改MySQL主機僅允許遠程服務(wù)器連接

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`use mysql;

update user set host='8.142.40.202' where user = "root";` </pre>

[圖片上傳失敗...(image-4cb267-1660008288090)]

此時在MySQL主機服務(wù)器是直接登錄不了的

[圖片上傳失敗...(image-4be7c8-1660008288090)]

配置SSH連接MySQL主機

在遠程主機執(zhí)行

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">ssh -fN -L33888:47.93.12.204:3306 root@8.142.40.202 </pre>

在使用SSH連接使用時發(fā)現(xiàn)部分人員說是連接一直在斷枫振,影響了正常開發(fā)喻圃,只需要加上下面這個參數(shù)重新執(zhí)行即可,這個參數(shù)是每60秒發(fā)送一個KeepAlive請求粪滤,保證終端不會因為超時空閑而斷開連接

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">ssh -o ServerAliveInterval=60 -fN -L33888:47.93.12.204:3306 root@8.142.40.202 </pre>

注意前邊是遠程服務(wù)器 后邊是遠程主機的服務(wù)器賬號斧拍、服務(wù)器地址

命令執(zhí)行完成后,可以通過命令

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">mysql -h 127.0.0.1 -P 33888 -uroot -p </pre>

密碼是MySQL服務(wù)器的 MySQL密碼

[圖片上傳失敗...(image-ee655c-1660008288090)]

四杖小、本地開發(fā)連接

上述通過兩臺服務(wù)器給大家做了演示肆汹,接下來看看開發(fā)人員如何連接開發(fā)數(shù)據(jù)庫

同樣在本地也執(zhí)行命令

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">ssh -fN -L3306:47.93.12.204:3306 root@8.142.40.202 </pre>

在host配置文件中進行域名映射

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">// 127.0.0.1 MySQL服務(wù)器地址 127.0.0.1 8.142.40.202 </pre>

使用Navicat進行連接

[圖片上傳失敗...(image-d12dc3-1660008288090)]

可以看到已經(jīng)連接上了

[圖片上傳失敗...(image-5bfa36-1660008288090)]

這樣就強制讓所有開發(fā)人員通過SSH來連接MySQL,當有一個開發(fā)離職后窍侧,只需要刪除對應(yīng)的服務(wù)器賬號即可

五县踢、限制Linux用戶登錄

你肯定也想到了转绷,通過SSH連接使用的服務(wù)器賬號密碼伟件,那么就意味著所有開發(fā)者都可以用過自己的賬號密碼進行登錄服務(wù)器。

上有政策议经,下有對策斧账,接下來看看如何限制用戶登錄服務(wù)器。

例如現(xiàn)在添加了用戶niuniu煞肾,此時該用戶是肯定可以連接到服務(wù)器的

[圖片上傳失敗...(image-5bba07-1660008288090)]

可以看到當前用戶通過Xsheel連接上了服務(wù)器咧织,服務(wù)器權(quán)限還是給部分人開通比較好,接下來就來限制該用戶登錄服務(wù)器

[圖片上傳失敗...(image-7e8785-1660008288090)]

執(zhí)行命令

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">usermod -s /sbin/nologin niuniu </pre>

用戶niuniu通過Xsheel登錄服務(wù)器籍救,可以看到返回當前賬號不可用习绢,說明我們想要的結(jié)果已經(jīng)有了

[圖片上傳失敗...(image-bbdd0f-1660008288090)]

再看看本地Navicat連接是否正常

[圖片上傳失敗...(image-d50d1-1660008288090)]

截止到這里就已經(jīng)完成了所有的安全措施。

六蝙昙、擴展一:WITH GRANT OPTION

這個參數(shù)是可選的闪萄,如果不加,那這句話到這就結(jié)束了奇颠,這個用戶就是一級败去,他不能再去建子用戶了,如果給了烈拒,就代表可以建子賬號圆裕,當然子用戶能分出去的權(quán)限僅限他自己有的權(quán)限

注意一點广鳍,這里的操作只能分配給已有的賬戶,創(chuàng)建新賬戶需要另外的權(quán)限 并且吓妆,還得有GRANT權(quán)限赊时,不然的話就算有這個權(quán)限但是沒有執(zhí)行這個權(quán)限的權(quán)限

七、擴展二:Linux用戶操作

添加用戶

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">useradd {username} </pre>

刪除用戶

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">`vipw

進去之后刪除對應(yīng)的用戶名即可

groupdel {username}

rm -rf /home/{username}` </pre>

設(shè)置密碼

<pre class="custom" data-tool="mdnice編輯器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">passwd {username} </pre>

需要輸入兩遍耿战,注意

八蛋叼、總結(jié)

本文給大家介紹兩種應(yīng)對開發(fā)者離職后,數(shù)據(jù)庫權(quán)限收回的方案剂陡。一種是通過MySQL本身字段的權(quán)限狈涮、另一種是通過SSH來連接,目前咔咔所在的公司是通過SSH進行連接的鸭栖。

在介紹這兩種方案時發(fā)現(xiàn)了很多可以擴展的知識點歌馍,也一并寫了出來,當你看這篇文章時就不用再一次進行查資料了晕鹊。

堅持學習松却、堅持寫作、堅持分享是咔咔從業(yè)以來所秉持的信念溅话。愿文章在偌大的互聯(lián)網(wǎng)上能給你帶來一點幫助晓锻,我是咔咔,下期見飞几。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砚哆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子屑墨,更是在濱河造成了極大的恐慌躁锁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卵史,死亡現(xiàn)場離奇詭異战转,居然都是意外死亡,警方通過查閱死者的電腦和手機以躯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門槐秧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人忧设,你說我怎么就攤上這事刁标。” “怎么了见转?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵命雀,是天一觀的道長。 經(jīng)常有香客問我斩箫,道長吏砂,這世上最難降的妖魔是什么撵儿? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮狐血,結(jié)果婚禮上淀歇,老公的妹妹穿的比我還像新娘。我一直安慰自己匈织,他們只是感情好浪默,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缀匕,像睡著了一般纳决。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乡小,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天阔加,我揣著相機與錄音,去河邊找鬼满钟。 笑死胜榔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的湃番。 我是一名探鬼主播夭织,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吠撮!你這毒婦竟也來了尊惰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤纬向,失蹤者是張志新(化名)和其女友劉穎择浊,沒想到半個月后戴卜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逾条,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年投剥,在試婚紗的時候發(fā)現(xiàn)自己被綠了师脂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡江锨,死狀恐怖吃警,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啄育,我是刑警寧澤酌心,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站挑豌,受9級特大地震影響安券,放射性物質(zhì)發(fā)生泄漏墩崩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一侯勉、第九天 我趴在偏房一處隱蔽的房頂上張望鹦筹。 院中可真熱鬧,春花似錦址貌、人聲如沸铐拐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遍蟋。三九已至,卻和暖如春螟凭,著一層夾襖步出監(jiān)牢的瞬間匿值,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工赂摆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挟憔,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓烟号,卻偏偏與公主長得像绊谭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子汪拥,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容