標籤:
1. 修改root許可權
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ identified by ‘root‘ WITH GRANT OPTION;-- 設定特定主機才擁有存取權限GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ identified by ‘root‘ WITH GRANT OPTION;
2. 檢查帳戶預設密碼和弱密碼
update user set password=password(‘test!p3‘) where user=‘root‘;
3. 刪除或鎖定與資料庫運行、維護等工作無關的帳號
-- 刪除匿名賬戶DELETE FROM mysql.user WHERE User = ‘‘;DELETE FROM mysql.db WHERE User = ‘‘;
4. 應按照使用者指派帳號,避免不同使用者間共用帳號
-- 在資料庫許可權配置能力內,根據使用者的業務需要,配置其所需的最小許可權GRANT ALL PRIVILEGES ON *.* to [email protected] identified by ‘root‘;GRANT ALL PRIVILEGES ON xxx.* to [email protected] identified by ‘root‘;GRANT select,insert,update,delete,create,drop on xxx.* to [email protected] identified by ‘root‘;
-- 回收不必要的或危險的授權,可以執行revoke命令:REVOKE ALL PRIVILEGES ON *.* from ‘root‘@‘192.168.120.11‘;
GRANT與REVOKEALL PRIVILEGES影響除WITH GRANT OPTION之外的所有許可權ALTER影響ALTER TABLE命令的使用ALTER ROUTINE影響建立儲存常式的能力CREATE影響CREATE TABLE命令的使用CREATE ROUTINE影響更改和棄用儲存常式的能力CREATE TEMPORARY TABLES影響CREATE TEMPORARY TABLE命令的使用CREATE USER影響建立、棄用;重新命名和撤銷使用者權限的能力CREATE VIEW影響CREATE VIEW命令的使用DELETE影響DELETE命令的使用DROP影響DROP TABLE命令的使用EXECUTE影響使用者運行預存程序的能力EVENT影響執行事件的能力(從MySQL5.1.6開始)FILE影響SELECT INTO OUTFILE和LOAD DATA INFILE的使用GRANT OPTION影響使用者委派許可權的能力INDEX影響CREATE INDEX和DROP INDEX命令的使用INSERT影響INSERT命令的使用LOCK TABLES影響LOCK TABLES命令的使用PROCESS影響SHOW PROCESSLIST命令的使用REFERENCES未來MySQL特性的預留位置RELOAD影響FLUSH命令集的使用REPLICATION CLIENT影響使用者查詢從伺服器和主伺服器位置的能力REPLICATION SLAVE複製從伺服器所需的許可權SELECT影響SELECT命令的使用SHOW DATABASES影響SHOW DATABASES命令的使用SHOW VIEW影響SHOW CREATE VIEW命令的使用SHUTDOWN影響SHUTDOWN命令的使用SUPER影響管理員級命令的使用,如CHANGE、MASTER、KILL thread、mysqladmin debug、PURGE MASTER LOGS和SET GLOBALTRIGGER影響執行觸發器的能力(從MySQL5.1.6開始)UPDATE影響UPDATE命令的使用USAGE只串連,不授予許可權
-- 重新讀授權表。否則,重新啟動伺服器前,不會使用更改
FLUSH PRIVILEGES;
-- 查看資料庫授權情況:
use mysql;
select * from user;
select * from db;
-- select * from host;
select * from tables_priv;
select * from columns_priv;
5. 日誌審計
/* 資料庫應配置日誌功能
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= mysql-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= "WIN-ZHIJIATEST.err"
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
*/
-- 查看所有的log命令
show variables like ‘log_%‘;
-- 查看具體的log命令
show variables like ‘log_bin‘;
6.版本查看
SELECT VERSION()
7. 串連數設定
/*根據機器效能和業務需求,設制最大最小串連數。*/
-- 編輯 MySQL 設定檔:my.cnf 或者是 my.ini
max_connections = 1000
mysql--資料庫安全配置