天天看點

mysql加強密碼_MySQL服務安全加強

資料庫管理人員可以參考本文檔進行 MySQL 資料庫系統的安全配置加強,提高資料庫的安全性,確定資料庫服務穩定、安全、可靠地運作。

1.禁止 Mysql 以管理者帳号權限運作

以普通帳戶安全運作 mysqld,禁止以管理者帳号權限運作 MySQL 服務。在 /etc/my.cnf 配置檔案中進行以下設定。[mysql.server]

user=mysql

2.避免不同使用者間共享帳号

參考以下步驟。

a.建立使用者。mysql> mysql> insert into

mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub

ject) values("localhost","pppadmin",password("passwd"),'','','');

執行以上指令可以建立一個 phplamp 使用者。

b.使用該使用者登入 MySQL 服務。mysql>exit;

@>mysql -u phplamp -p

@>輸入密碼

mysql>登入成功

3.删除無關帳号

DROP USER 語句可用于删除一個或多個 MySQL 賬戶。使用 DROP USER 指令時,必須確定目前賬号擁有 MySQL 資料庫的全局 CREATE USER 權限或 DELETE 權限。賬戶名稱的使用者和主機部分分别與使用者表記錄的 User 和 Host 列值相對應。

執行DROP USER user;語句,您可以取消一個賬戶和其權限,并删除來自所有授權表的帳戶權限記錄。

4.密碼

檢查賬戶預設密碼和弱密碼。密碼長度需要至少八位,并包括數字、小寫字母、大寫字母和特殊符号四類中的至少兩種類型,且五次以内不得設定相同的密碼。密碼應至少每 90 天進行一次更換。

您可以通過執行以下指令修改密碼。mysql> update user set password=password('test!p3') where user='root';

mysql> flush privileges;

5.授權

在資料庫權限配置能力範圍内,根據使用者的業務需要,配置其所需的最小權限。

檢視資料庫授權情況。mysql> use mysql;

mysql> select * from user;

mysql>select * from db;

mysql>select * from host;

mysql>select * from tables_priv;

mysql>select * from columns_priv;

通過 revoke 指令回收不必要的或危險的授權。mysql> help revoke

Name: 'REVOKE'

Description:

Syntax:

REVOKE

priv_type [(column_list)]

[, priv_type [(column_list)]] ...

ON [object_type]

{

*

| *.*

| db_name.*

| db_name.tbl_name

| tbl_name

| db_name.routine_name

}

FROM user [, user] ...

6.開啟日志審計功能

資料庫應配置日志功能,便于記錄運作狀況和操作行為。

MySQL服務有以下幾種日志類型:

錯誤日志: -log-err

查詢日志: -log (可選)

慢查詢日志: -log-slow-queries (可選)

更新日志: -log-update

二進制日志: -log-bin

找到 MySQL 的安裝目錄,在 my.ini 配置檔案中增加上述所需的日志類型參數,儲存配置檔案後,重新開機 MySQL 服務即可啟用日志功能。例如,

#Enter a name for the binary log. Otherwise a default name will be used.

#log-bin=

#Enter a name for the query log file. Otherwise a default name will be used.

#log=

#Enter a name for the error log file. Otherwise a default name will be used.

log-error=

#Enter a name for the update log file. Otherwise a default name will be used.

#log-update=

該參數中啟用錯誤日志。如果您需要啟用其他的日志,隻需把對應參數前面的 “#” 删除即可。

日志查詢操作說明

執行show variables like 'log_%';指令可檢視所有的 log。

執行show variables like 'log_bin';指令可檢視具體的 log。

7.安裝最新更新檔

確定系統安裝了最新的安全更新檔。

注意: 在保證業務及網絡安全的前提下,并經過相容性測試後,安裝更新更新檔。

8.如果不需要,應禁止遠端通路

禁止網絡連接配接,防止猜解密碼攻擊、溢出攻擊、和嗅探攻擊。

注意: 僅限于應用和資料庫在同一台主機的情況。

如果資料庫不需要遠端通路,可以禁止遠端 TCP/IP 連接配接,通過在 MySQL 伺服器的啟動參數中添加--skip-networking參數使 MySQL 服務不監聽任何 TCP/IP 連接配接,增加安全性。

建議不要将資料庫高危服務對網際網路開放。

9.設定可信 IP 通路控制

通過資料庫所在作業系統的防火牆限制,實作隻有信任的 IP 才能通過監聽器通路資料庫。mysql> GRANT ALL PRIVILEGES ON db.*

·-> -> TO 使用者名@'IP子網/掩碼';

10.連接配接數設定

根據您的機器性能和業務需求,設定最大、最小連接配接數。

在 MySQL 配置檔案(my.conf 或 my.ini)的 [mysqld] 配置段中添加max_connections = 1000,儲存配置檔案,重新開機 MySQL 服務後即可生效。