gt; mysql -V
MySQL> SHOW VARIABLES WHERE variable_name LIKE "version";
# 檢視資料庫使用者和密碼資訊
MySQL> SELECT host,user,plugin,authentication_string,password_lifetime,account_locked FROM mysql.user;
# 檢視使用者權限
MySQL> SHOW GRANTS FOR 'audit'@'localhost';
# 建立新使用者
MySQL> CREATE USER 'manager'@'localhost' IDENTIFIED BY 'password';
# 修改賬号密碼
MySQL> ALTER USER 'manager'@'localhost' IDENTIFIED BY 'new_password';
# 給使用者授權
MySQL> GRANT PRIVILEGES ON DatabaseName.TableName TO 'manager'@'localhost';
MySQL> GRANT SELECT, INSERT, UPDATE, DELETE ON DatabaseName.TableName TO 'manager'@'localhost';
# 撤銷使用者權限
MySQL> REVOKE PRIVILEGE ON DatabaseName.TableName TO 'manager'@'localhost';
# 檢查使用者權限清單
MySQL> SELECT * FROM mysql.user\G
# 檢查資料庫權限清單
MySQL> SELECT * FROM mysql.db\G
# 檢查使用者表權限清單
MySQL> SELECT * FROM mysql.tables_priv\G
# 取消所有授權
MySQL> REVOKE ALL PRIVILEGES ON *.* FROM 'audit'@'localhost';
# 删除使用者
MySQL> DROP USER 'manager'@'localhost';
# 檢視密碼複雜度
MySQL> SHOW VARIABLES LIKE 'validate%';
# 上述指令執行結果為空時,安裝插件
MySQL> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
# 安裝插件
MySQL> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so'
# 安裝插件
MySQL> INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';
檢視變量
MySQL> SHOW VARIABLES LIKE '%connection_control%';
## 修改my.cnf檔案
#登陸失敗次數限制
connection-control-failed-connections-threshold=5
#限制重試時間,此處為毫秒,注意按需求換算,此處為5分鐘
connection-control-min-connection-delay=300000
# 重新開機mysql服務才能生效
gt; service mysqld start
# 檢視密碼過期天數
MySQL> SHOW VARIABLES LIKE "%password%";
# 修改/etc/my.cnf檔案
default_password_lifetime=180 # 預設default_password_lifetime=0
# 重新開機mysql服務才能生效
gt; service mysqld start
# 檢視登入失敗政策
MySQL> SHOW VARIABLES LIKE '%max_connect_errors%';
# 操作逾時自動退出
MySQL> SHOW VARIABLES LIKE "%timeout%";
# 詢問是否采用遠端管理,如果本地管理則不适用,遠端管理是否啟用SSL
MySQL> SHOW VARIABLES LIKE "%have_ssl%";
MySQL> SHOW VARIABLES LIKE "%have_openssl%";
執行下列語句,預設為OFF,不符合。應設定為ON為開啟審計。
MySQL> SHOW GLOBAL VARIABLES LIKE '%general%';
MySQL> SET GLOBAL GENERAL_LOG=ON;