資料庫管理人員可以參考本文件進行 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 服務後即可生效。
mysql怎麼加固 mysql安裝及加固
mysql安裝 檢視是否安裝mysql 我們先看一下有沒有安裝mysql yum list installed mysql grep mysql 本地只安裝了php鏈結mysql的庫,沒有安裝mysql 如果有安裝,可以使用安裝的或者解除安裝了重新安裝 新增yum源 去mysql官網查詢 下面我就來...
mysql口令 MySQL 密碼設定
乙個重要的應用就是如何在遺忘root使用者密碼的時候修改密碼,使用的方法是啟動mysql伺服器時忽略載入授權表。由mysql使用使用者名稱和口令的方法與unix或windows使用的方式有很多不同之處 mysql 使用於認證目的的使用者名稱,與unix使用者名稱 登入名字 或windows使用者名稱...
弱口令及安全加固
通常認為容易被別人 他們有可能對你很了解 猜測到或被破解工具破解的口令均為弱口令。常見弱口令有 1 數字或字母連排或混排,鍵盤字母連排 如 123456,abcdef,123abc,qwerty,1qaz2wsx等 2 系統預設賬號密碼 如 tomcat tomcat等 3 短語密碼 如 52013...