您的位置:首页 > 数据库 > MySQL

Windows系统下的MySQL安全管理

2019-01-25 09:24 204 查看
版权声明:数据库_www.hj8828.com_13099636600_MySQl专栏-提供大量Mysql学习笔记,希望给初学者共享,帮助数据库初学者…… https://blog.csdn.net/qq_38506209/article/details/86636170

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;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: