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;