溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中安全設(shè)置的示例分析

發(fā)布時間:2021-11-01 09:47:27 來源:億速云 閱讀:170 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要為大家展示了“MySQL中安全設(shè)置的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MySQL中安全設(shè)置的示例分析”這篇文章吧。

MySQL 安全設(shè)置

服務(wù)器啟動后,可以執(zhí)行

mysql_secure_installation;

此時輸入 root 原始密碼(初始化安裝的話為空),接下來,為了安全,MySQL 會提示你重置 root 密碼,移除其他用戶賬號,禁用 root 遠(yuǎn)程登錄,移除 test 數(shù)據(jù)庫,重新加載 privilege 表格等,你只需輸入 y 繼續(xù)執(zhí)行即可。

運行mysql_secure_installation會執(zhí)行幾個設(shè)置: 

a)為root用戶設(shè)置密碼 

b)刪除匿名賬號 

c)取消root用戶遠(yuǎn)程登錄 

d)刪除test庫和對test庫的訪問權(quán)限 

e)刷新授權(quán)表使修改生效

綁定IP

--bind-address=IP

1.修改root用戶密碼

   可以通過mysql_secure_installation完成

2.正確授權(quán)

   mysql庫中有4張權(quán)限表,user、db、tables_priv、columns_priv,分別對應(yīng)用戶密碼、用戶對數(shù)據(jù)庫的權(quán)限、對表的權(quán)限、對列的權(quán)限。

   當(dāng)一個用戶向MySQL發(fā)起請求時,首先會從user表中驗證host、user、password,然后依次驗證db、tables_priv、columns_priv,驗證過程中,如果db表中對應(yīng)的權(quán)限為Y,則用戶對某個庫的權(quán)限全為Y,將不再驗證tables_priv和columns_priv。

    對于MySQL中的賬戶權(quán)限相關(guān)的安全配置,總結(jié)如下:

針對每個網(wǎng)站建立單獨的賬戶

為每個網(wǎng)站家里專屬數(shù)據(jù)庫

按照user->db->tables_priv->columns_pri的順序進(jìn)行細(xì)粒度的權(quán)限控制

為每個用戶單獨配置一個專屬數(shù)據(jù)庫,保證當(dāng)前的用戶所有操作只能發(fā)生在自己的數(shù)據(jù)庫中,防止SQL注入發(fā)生后,黑客通過注入訪問到系統(tǒng)表。

3.MySQL網(wǎng)絡(luò)安全配置

禁止root用戶遠(yuǎn)程登陸

防火墻設(shè)置

更改默認(rèn)端口,可以一定程度上防止端口掃描工具掃描

限制單個用戶的連接數(shù)量:

  max_user_connections  20

4.文件權(quán)限及文件安全

使用非root用戶啟動MySQL服務(wù)

限制啟動MySQL的用戶的文件權(quán)限,同時保證用戶對MySQL的數(shù)據(jù)文件有讀寫權(quán)限

可以使用chroot更改根目錄,防止非root用戶訪問到一些敏感文件,比如:/etc/passwd

不要給非root用授予process和super權(quán)限,mysqladmin processlist 和show processlist命令會查看到任何用戶執(zhí)行的命令,這可能看到其他用戶執(zhí)行的update user set passoword=…;命令,supper權(quán)限可以終止會話,更改系統(tǒng)參數(shù)等

不要對表的使用軟連接(--skip-symbolic-links參數(shù)用來禁用這一功能),表的軟連接接只有MyISAM支持,因為開啟表的軟連接后(尤其時對于使用系統(tǒng)root用戶啟動的MySQL服務(wù)),MySQL用戶就可以使用mysqld來刪除、重命名數(shù)據(jù)文件所在的位置以外的文件了。

如果plugin文件夾可以被MySQL Server寫,那么用戶就可以使用select … into dumpfile 命令把可以執(zhí)行代碼寫入到里面,可以通過把plugin_dir參數(shù)對應(yīng)的路徑設(shè)為只讀以及調(diào)整--secure-file-priv參數(shù)來提高安全性

不要給非root用戶授予文件的讀寫權(quán)限,防止使用load data local infile 來提取本地文件(比如/etc/passwd里的信息,會對系統(tǒng)安全造成威脅)

 [mysqld]

 local-infile=0

5.如果有必要,可以刪除~/.bash_history 文件,防止讀取歷史命令

#rm .bash_history .mysql_history

#ln -s /dev/null .bash_history

#ln -s /dev/null .mysql_history

以上是“MySQL中安全設(shè)置的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI