1.用戶管理
MySQL將賬戶存儲在系統數據庫mysql的user表,MySQL用戶名最長可達32個字符mysql
查看全部用戶
select user,host,authentication_string from user;sql
查看當前用戶的權限
show grants;數據庫
查看gg用戶權限
show grants for gg;服務器
添加用戶,%是通配符,表明任何ip
CREATE USER 'finley'@'%' IDENTIFIED BY 'password';
添加權限
GRANT ALL PRIVILEGES ON . TO finley@'%' WITH GRANT OPTION;
修改密碼
alter user gg@'%' identified by '111111';ide
撤銷權限
revoke all on . from finley@'%';
刪除用戶
drop user finley;ip
刷新權限
FLUSH PRIVILEGES;
mysqladmin -u root -p flush-privileges
mysqladmin -u root -p reloadci
2.角色管理
建立角色:角色名稱與用戶賬戶名稱很是類似,而且由格式的用戶部分和主機部分組成,主機部分能夠省略,默認爲%
CREATE ROLE 'dev';資源
爲角色??分配權限,與爲用戶賬戶分配權限的語法相同
GRANT ALL ON . TO 'dev';string
撤銷角色權限
revoke all on . from dev;it
使用角色分配爲用戶分配權限
CREATE USER 'dev1'@'localhost' IDENTIFIED BY 'dev1pass';
GRANT 'dev' TO 'dev1'@'localhost';
撤銷用戶權限
REVOKE dev FROM 'dev1'@'localhost';
刪除角色
drop role 'dev';
3.資源限制
設置賬戶資源限制
CREATE USER 'francis'@'localhost' IDENTIFIED BY 'frank'
WITH MAX_QUERIES_PER_HOUR 20 賬戶每小時能夠發出的查詢數
MAX_UPDATES_PER_HOUR 10 賬戶每小時能夠發佈的更新次數
MAX_CONNECTIONS_PER_HOUR 5 賬戶每小時能夠鏈接到服務器的次數
MAX_USER_CONNECTIONS 2; 賬戶與服務器同時鏈接的數量
修改現有賬戶的限制
ALTER USER 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100;
要將全部賬戶的當前計數重置爲零
FLUSH USER_RESOURCES
FLUSH PRIVILEGES
mysqladmin -u root -p flush-privileges
mysqladmin -u root -p reload
4.密碼管理
手動過時賬戶密碼:還能夠鏈接數據庫,可是沒有權限,修改密碼後以前的權限生效
ALTER USER 'gg'@'%' PASSWORD EXPIRE;
flush privileges;
密碼過時策略
[mysqld]
default_password_lifetime=180
default_password_lifetime=0
或
SET PERSIST default_password_lifetime = 180; 半年後過時
SET PERSIST default_password_lifetime = 0; 永不過時
要求密碼每90天更改一次:
CREATE USER 'gg'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER 'gg'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;
禁用密碼到期:
CREATE USER 'gg'@'%' PASSWORD EXPIRE NEVER;
ALTER USER 'gg'@'%' PASSWORD EXPIRE NEVER;
禁止重複使用365天之前的最後6個密碼
[mysqld]
password_history=6
password_reuse_interval=365
或
SET PERSIST password_history = 6;
SET PERSIST password_reuse_interval = 365;
容許重用以前,至少須要更改5個密碼:
CREATE USER 'jeffrey'@'localhost' PASSWORD HISTORY 5;
ALTER USER 'jeffrey'@'localhost' PASSWORD HISTORY 5;
在容許重用以前至少須要365天:
CREATE USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'jeffrey'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
結合這兩種類型的重用限制:
CREATE USER 'jeffrey'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'jeffrey'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
雙密碼支持,8.0.14版本之後
創建 新的主密碼,將當前密碼保留爲輔助密碼
ALTER USER 'gg'@'%' IDENTIFIED BY '111111' RETAIN CURRENT PASSWORD;
刪除輔助密碼ALTER USER 'gg'@'%' DISCARD OLD PASSWORD;