MySQL8.0、创建新用户与角色授权

MySQL8.0、创建新用户与角色授权

前提需求

创建一个新的数据库用户,并给用户添加增删改查 的权限。

1、查询、创建、修改、删除系统用户
# 1、查询系统用户
SELECT host, user, select_priv, insert_priv, drop_priv, update_priv, 
authentication_string FROM mysql.user;

# 2、创建用户  -下文均执行方法一语句 
# 方式一: 默认host是 % 
CREATE USER zhang3 IDENTIFIED BY '123456';
# 方式二: 自定义host:localhost
CREATE USER 'zhang3'@'localhost' IDENTIFIED BY '123456';

# 3、修改用户信息
# 3.1 修改名称
UPDATE mysql.user SET USER = 'zhangsan' WHERE USER = 'zhang3';
# 3.2 修改密码
ALTER USER zhang3 IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '123';

# 4、删除用户信息
方式一:默认删除host为%的用户(推荐)  
DROP USER zhangsan;
方式二:
DELETE FROM mysql.user WHERE Host='%' AND User='zhangsan';
FLUSH PRIVILEGES;

扩展设置当前用户密码

ALTER USER USER() IDENTIFIED BY 'new_password';
# root用户也可以使用set修改登录密码
SET PASSWORD='new_password';
# root其他用户密码
SET PASSWORD FOR 'username'@'hostname'='new_password';

提示: Host的区别

% : 表示所有主机都可以登录

localhost: 表示只有本地可以登录

2、用户权限授权和收回
2.1 查看登录用户的权限信息

新用户完毕后,默认只有登录系统的权限。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cGxMtCic-1652070836299)(C:\Users\YST\AppData\Local\Temp\1652066657626.png)]

2.2、用户添加新权限。
# 1、查看当前用户权限
SHOW GRANTS;
# 或
SHOW GRANTS FOR CURRENT_USER;
# 或
SHOW GRANTS FOR CURRENT_USER();

# 2、查看某用户的全局变量
SHOW GRANTS FOR 'user'@'主机地址' ;

# 3、授予权限 -授予zhangsan在dbtest1库下的增删改查权限。*表示所有表。*.*表示所有库及表
GRANT SELECT,INSERT,DELETE,UPDATE ON dbtest1.* TO zhangsan;

# 4、授予zhangsan所有库、表权限,但是不包括GRANT权限
GRANT ALL PRIVILEGES ON *.* TO zhangsan@'%' IDENTIFIED BY '123';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mX9peT0H-1652070836300)(C:\Users\YST\AppData\Local\Temp\1652067613111.png)]

2.3、收回用户权限(root)
# 收回删除权限
REVOKE DELETE ON dbtest1.* FROM zhangsan;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZI9kByDW-1652070836300)(C:\Users\YST\AppData\Local\Temp\1652067696374.png)]

3、通过创建角色进行权限分配

创建一个操作dbtest1库的角色,授予SELECT、UPDATE、INSERT权限。

3.1、角色管理
# 1、创建user角色
CREATE ROLE 'worker'@'localhost';

# 2、删除角色
DROP ROLE 'worker';
3.2、角色权限管理
# 1、查看角色权限
SHOW GRANTS FOR 'worker';

# 2、user角色授予dbtest1库权限
GRANT SELECT, UPDATE, INSERT ON dbtest1.* TO 'worker';

# 3、回收角色权限
REVOKE UPDATE ON dbtest1.* FROM 'worker';

# 4、激活角色
SET DEFAULT ROLE ALL TO 'zhangsan'@'%';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V8xikjUj-1652070836300)(C:\Users\YST\AppData\Local\Temp\1652070206393.png)]

3.3、用户赋予角色

1、用户授予角色

GRANT 'worker' TO 'zhangsan';

2、授权后查看角色是否授权成功

SHOW GRANTS FOR 'zhangsan';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ll5iuZJQ-1652070836301)(C:\Users\YST\AppData\Local\Temp\1652070555862.png)]

3、撤销用户角色

REVOKE 'worker' FROM 'zhangsan'@'%';

4、授权后登陆新用户,查看角色信息

# 1、在查看角色之前需要先激活角色
SET DEFAULT ROLE ALL TO 'zhangsan'@'%';

# 2、查看当前角色
SELECT CURRENT_ROLE();

结果如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DkweZtd7-1652070836301)(C:\Users\YST\AppData\Local\Temp\1652070780007.png)]

至此完毕,希望文章能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值