溫馨提示×

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

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

mysql系統(tǒng)安全管理與優(yōu)化

發(fā)布時(shí)間:2020-07-30 20:24:14 來(lái)源:網(wǎng)絡(luò) 閱讀:1130 作者:FJCA 欄目:MySQL數(shù)據(jù)庫(kù)

1. 禁止MySql以管理員賬號(hào)權(quán)限運(yùn)行

MySql應(yīng)該使用非管理員賬號(hào)運(yùn)行,以普通賬戶(hù)安全運(yùn)行mysqld

加固方法:在my.cnf配置文件中配置user=mysql


2. 設(shè)置root用戶(hù)口令并修改登錄名,且不存在空密碼賬戶(hù)

  • 修改root用戶(hù)密碼,在MySql控制臺(tái)中執(zhí)行:

> set password for 'root'@'localhost'=password('new_password');
#實(shí)際操作中,只需將上面new_password換成實(shí)際的口令即可
  • 為了更有效的改進(jìn)root用戶(hù)的安全性,就是為其改名。需要更新表用戶(hù)中的mysql數(shù)據(jù)庫(kù)。在控制臺(tái)中執(zhí)行:

> use mysql;
> update user set user="another_username" where user="root";
> flush privileges;

然后,可用通過(guò)$ mysql -u another_username -p 訪(fǎng)問(wèn)mysql控制臺(tái)了。

  • 數(shù)據(jù)庫(kù)中所有用戶(hù)都應(yīng)該配置密碼,通過(guò)以下語(yǔ)句可以查詢(xún)是否有空密碼賬戶(hù):

> select * from mysql.user where user="";


3. 配置合適的密碼強(qiáng)度,最長(zhǎng)使用期限小于90天

  • 數(shù)據(jù)庫(kù)用戶(hù)Miami復(fù)雜性包括長(zhǎng)度、大小寫(xiě)和特殊字符。

加固方法:添加以下配置行到全局配置

plugin-load = validate_password.so        #加載密碼強(qiáng)度驗(yàn)證插件
validate_password_length = 14             #密碼長(zhǎng)度最小為14,默認(rèn)為8      
validate_password_mixed_case_count = 1    #至少包含的小寫(xiě)字母?jìng)€(gè)數(shù)和大寫(xiě)字母?jìng)€(gè)數(shù)
validate_password_number_count = 1        #至少包含的數(shù)字個(gè)數(shù)
validate_password_special_char_count = 1  #至少包含的特殊字符個(gè)數(shù)
validate_password_policy = MEDIUM         #密碼強(qiáng)度等級(jí),有三種:0/LOW、1/MEDIUM、2/STRONG,默認(rèn)為MEDIUM

關(guān)于密碼強(qiáng)度的三種等級(jí),要求如下:

Policy                 Tests Performed
0 or LOW               Length
1 or MEDIUM            Length; numeric, lowercase/uppercase, and special characters
2 or STRONG            Length; numeric, lowercase/uppercase, and special characters; dictionary file
  • 用戶(hù)密碼過(guò)期時(shí)間小于90天,在控制臺(tái)執(zhí)行:

> set global default_password_lifetime=90;


4. 降低用戶(hù)的數(shù)據(jù)庫(kù)特權(quán),只有管理員有完整的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)權(quán)限

  • MySql數(shù)據(jù)庫(kù)中mysql.user和mysql.db表列出了可以授權(quán)(或拒絕)給mysql用戶(hù)的各種權(quán)限,通常,這些特權(quán)不應(yīng)該對(duì)每個(gè)mysql用戶(hù)都可用,而且通常只保留給管理員用戶(hù)。

加固方法:審計(jì)每項(xiàng)特權(quán)授予的用戶(hù),對(duì)于非管理用戶(hù),使用revoke語(yǔ)句來(lái)適當(dāng)刪除權(quán)限。

# mysql.user表中的特權(quán)有:
file_priv:表示是否允許用戶(hù)讀取數(shù)據(jù)庫(kù)所在主機(jī)的本地文件;
Process:表示是否允許用戶(hù)查詢(xún)所有用戶(hù)的命令執(zhí)行信息;
Super_priv:表示用戶(hù)是否有設(shè)置全局變量,管理員調(diào)試等高級(jí)別權(quán)限;
Shutdown_priv:表示用戶(hù)是否可以關(guān)閉數(shù)據(jù)庫(kù);
Create_user_priv:表示用戶(hù)是否可以創(chuàng)建或刪除其他用戶(hù);
Grant_priv:表示用戶(hù)是否可以修改其他用戶(hù)權(quán)限

查詢(xún)正在執(zhí)行的sql語(yǔ)句:

> show processlist;
# 或者
> use information_schema;
> select * from PROCESSLIST where info is not null;

使用如下命令查看擁有對(duì)應(yīng)權(quán)限的數(shù)據(jù)庫(kù)賬號(hào):

select host,user from mysql.user where File_priv='Y';

如果存在非管理員用戶(hù),使用如下命令進(jìn)行權(quán)限回收:

revoke file on *.* from 'mysql';



5. 禁止或限制遠(yuǎn)程訪(fǎng)問(wèn),確保特定主機(jī)才擁有訪(fǎng)問(wèn)權(quán)限

> grant all on *.* to 'root'@'%';
  • 上面這個(gè)授權(quán),允許root用在所有主機(jī)上對(duì)數(shù)據(jù)庫(kù)的所有執(zhí)行權(quán)限,要限制特定主機(jī)可以采用:

> grant all on *.* to 'root'@'localhost';
> grant all on *.* to 'root'@'hostname_ip'; #可以是ip或者主機(jī)名

如果,要取消在某臺(tái)主機(jī)上的訪(fǎng)問(wèn)權(quán)限,可以采用:

> revoke all on *.* from 'root'@'hostname_ip';

如果,只授權(quán)部分權(quán)限,可以采用:

> grant select on mydb.* to 'someuser'@'hostname_ip';


6. 配置MySql日志便于審計(jì)




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

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

AI