MySQL 安全管理
时间:2018-12-20 16:57 来源:linux.it.net.cn 作者:IT
1.用户管理
MySQL将帐户存储在系统数据库mysql的user表,MySQL用户名最长可达32个字符
查看所有用户
select user,host,authentication_string from user;
查看当前用户的权限
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';
撤销权限
revoke all on . from finley@'%';
删除用户
drop user finley;
刷新权限
FLUSH PRIVILEGES;
mysqladmin -u root -p flush-privileges
mysqladmin -u root -p reload
2.角色管理
创建角色:角色名称与用户帐户名称非常相似,并且由格式的用户部分和主机部分组成,主机部分可以省略,默认为%
CREATE ROLE 'dev';
为角色??分配权限,与为用户帐户分配权限的语法相同
GRANT ALL ON . TO 'dev';
撤销角色权限
revoke all on . from dev;
使用角色分配为用户分配权限
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;
(责任编辑:IT)
1.用户管理
查看所有用户
查看当前用户的权限
查看gg用户权限
添加用户,%是通配符,代表任何ip
撤销权限
刷新权限
2.角色管理
为角色??分配权限,与为用户帐户分配权限的语法相同
撤销角色权限
使用角色分配为用户分配权限
撤销用户权限
删除角色
3.资源限制
修改现有帐户的限制
要将所有帐户的当前计数重置为零
4.密码管理
密码过期策略
要求密码每90天更改一次:
禁用密码到期:
禁止重复使用365天以前的最后6个密码
允许重用之前,至少需要更改5个密码:
在允许重用之前至少需要365天:
结合这两种类型的重用限制:
双密码支持,8.0.14版本以后
删除辅助密码 (责任编辑:IT) |