mysql系統安全管理與最佳化

來源:互聯網
上載者:User

標籤:管理員   ali   ase   就是   時間   檔案中   mysql資料庫   sel   pre   

1. 禁止MySql以管理員帳號許可權運行

MySql應該使用非管理員帳號運行,以普通賬戶安全運行mysqld

加固方法:在my.cnf設定檔中配置user=mysql


2. 設定root使用者口令並修改登入名稱,且不存在空密碼賬戶

  • 修改root使用者密碼,在MySql控制台中執行:

> set password for 'root'@'localhost'=password('new_password');#實際操作中,只需將上面new_password換成實際的口令即可
  • 為了更有效改進root使用者的安全性,就是為其改名。需要更新表使用者中的mysql資料庫。在控制台中執行:

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

然後,可用通過$ mysql -u another_username -p 訪問mysql控制台了。

  • 資料庫中所有使用者都應該配置密碼,通過以下語句可以查詢是否有空密碼賬戶:

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


3. 配置合適的密碼強度,最長使用到期日小於90天

  • 資料庫使用者Miami複雜性包括長度、大小寫和特殊字元。

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

plugin-load = validate_password.so        #載入密碼強度驗證外掛程式validate_password_length = 14             #密碼長度最小為14,預設為8      validate_password_mixed_case_count = 1    #至少包含的小寫字母個數和大寫字母個數validate_password_number_count = 1        #至少包含的數字個數validate_password_special_char_count = 1  #至少包含的特殊字元個數validate_password_policy = MEDIUM         #密碼強度等級,有三種:0/LOW、1/MEDIUM、2/STRONG,預設為MEDIUM

關於密碼強度的三種等級,要求如下:

Policy                 Tests Performed0 or LOW               Length1 or MEDIUM            Length; numeric, lowercase/uppercase, and special characters2 or STRONG            Length; numeric, lowercase/uppercase, and special characters; dictionary file
  • 使用者密碼到期時間小於90天,在控制台執行:

> set global default_password_lifetime=90;


4. 降低使用者的資料庫特權,只有管理員有完整的資料庫存取權限

  • MySql資料庫中mysql.user和mysql.db表列出了可以授權(或拒絕)給mysql使用者的各種許可權,通常,這些特權不應該對每個mysql使用者都可用,而且通常只保留給管理使用者。

加固方法:審計每項特權授予的使用者,對於非系統管理使用者,使用revoke語句來適當刪除許可權。

# mysql.user表中的特權有:file_priv:表示是否允許使用者讀取資料庫所在主機的本地檔案;Process:表示是否允許使用者查詢所有使用者的命令執行資訊;Super_priv:表示使用者是否有設定全域變數,管理員調試等進階別許可權;Shutdown_priv:表示使用者是否可以關閉資料庫;Create_user_priv:表示使用者是否可以建立或刪除其他使用者;Grant_priv:表示使用者是否可以修改其他使用者權限

查詢正在執行的sql語句:

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

使用如下命令查看擁有對應許可權的資料庫帳號:

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

如果存在非管理使用者,使用如下命令進行許可權回收:

revoke file on *.* from 'mysql';



5. 禁止或限制遠端存取,確保特定主機才擁有存取權限

> grant all on *.* to 'root'@'%';
  • 上面這個授權,允許root用在所有主機上對資料庫的所有執行許可權,要限制特定主機可以採用:

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

如果,要取消在某台主機上的存取權限,可以採用:

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

如果,只授權部分許可權,可以採用:

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


6. 配置MySql日誌便於審計




mysql系統安全管理與最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.