计算机网络/计算机科学与应用/系统/运维/开发

MySQL8用户管理

创建用户、删除用户、管理密码、权限管理

1、创建新用户

创建用户的过程,mysql会在user表中新增一条记录,新创建的用户没有任何权限,只能链接mysql服务器

    CREATE USER创建用户语法:

    CREATE USER [IF NOT EXISTS]

    用户名1 [密码策略][, 用户名2 [密码策略]]...

    [DEFAULT ROLE 角色1 [,角色2] ...]

    [REQUIRE {NONE | 安全标识1 [[AND] 安全标识2]...}]

    [WITH 资源限制参数列表]

    [PASSWORD 密码失效参数]

    [ACCOUNT LOCK|UNLOCK]

    [COMMENT '注释信息' | ATTRIBUTE 'JSON对象'];


提示:

用户名, ('用户名'@'主机名') 形式

密码值,  密码值通过 (IDENTIFIED [WITH插件] BY密码值)子句指定

DEFAULT ROLE, 指定用户角色 MySQL8开始支持角色指定

REQUIRE,指定安全标识 如SSL、X509等

WITH,限制用户使用资源

PASSWORD,设置用户密码到期更换策略或密码重用策略

ACCOUNT,账号状态UNLOCK

COMMENT,创建用户语句添加注释信息

ATTRIBUTE,创建用户添加额外的属性信息,额外的属性信息需要通过JSON对象格式指定


实例1:创建用户名 xiaohong 主机名 localhost

CREATE USER IF NOT EXISTS 'xiaohong'@'localhost';

image.png

image.png


2、创建只能在特定主机登录的用户

CREATE USER IF NOT EXISTS 'xiaoming'@'192.168.2.130';

创建的用户只能在指定的主机上登录

查看mysql系统库的user表 xiaoming 的用户记录:

SELECT 'host','user','authentication_string' FROM mysql.user WHERE 'user'='xiaoming'\G


3、创建可以在某个ip段内链接MYSQL服务的用户

CREATE USER IF NOT EXISTS 'xiaozhang'@'192.168.2.%';


在某个ip段,mysql登录也需要使用 -h192.168.2.99 ip才能登录,不能使用-hlocalhost -h127.0.0.1 或不写该参数的方式

4、创建可以通过任意主机链接mysql的服务的用户

CREATE USER IF NOT EXISTS 'xiaoli'@'%';


没指定主机名 默认就是 %  表示任意主机

mysql -uxiaoli

mysql -h192.168.41.90 -P3306 -uxiaoli 

mysql -hlocalhost -P3306 -uxiaoli 

mysql -h127.0.0.1 -P3306 -uxiaoli 

5、创建MySQL用户时,可以指定用户的连接密码

实例:创建用户xiaohua 主机名% 密码12345678

CREATE USER IF NOT EXISTS 'xiaohua'@'%' IDENTIFIED BY '12345678';


6、创建用户时为用户设置插件认证方式

使用IDENTIFIED WITH语句

实例: 创建用户 xiaowang 主机名% 密码12345678 

CREATE USER IF NOT EXISTS 'xiaowang'@'%'
IDENTIFIED WITH mysql_native_password BY '12345678';


1、ALTER语句修改用户

ALTER USER [IF NOT EXISTS]

用户名1 [密码策略][, 用户名2 [密码策略]]...

[DEFAULT ROLE 角色1 [,角色2] ...]

[REQUIRE {NONE | 安全标识1 [[AND] 安全标识2]...}]

[WITH 资源限制参数列表]

[PASSWORD 密码失效参数]

[ACCOUNT LOCK|UNLOCK]

[COMMENT '注释信息' | ATTRIBUTE 'JSON对象'];

注意:

用户名不能使用alter语句修改,其他信息都可以修改

用户名修改需要使用 RENAME USER 旧用户名 To 新用户名; 修改

案例:修改用户 'xiaohong'@'%' 密码为 123456

ALTER USER 'xiaohong'@'%' IDENTIFIED BY '123456';


2、用户账户锁定和解锁

使用CREATE USER 和ALTER USER语句时,可以通过 ACCOUNT字句 设置账户锁定或解锁

案例:创建用户 'xiaohong'@'%' 并设置账户锁定

CREATE USER 'xiaohong'@'%'

IDENTIFIED BY '123456'

ACCOUNT LOCK;

此时,xiaohong被锁定,无法登录 


3、解锁'xiaohong'@'%'用户

ALTER USER 'xiaohong'@'%' ACCOUNT UNLOCK;

此时,xiaohong即可重新登录 


删除用户:

使用DROP 和 DELETE语句删除

1、使用DROP 语句删除 'xiaohong'@'192.168.4.10' 用户 

DROP USER 'xiaohong'@'192.168.4.10';

2、使用DELETE语句删除 

DELETE FROM mysql.user WHERE USER ='xiaohong' AND HOST ='192.168.4.10.%';

用户被删除后,权限表中的该用户权限记录都会被删除


知识是抵御一切灾祸的盾牌

评论

^