mysql数据库角色权限管理_MySQL数据库8(十八)用户权限管理

用户权限管理

用户权限管理:在不同的项目中给不同的角色(开发者)不同的操作权限,为了保证数据库数据的安全

用户管理

Mysql需要客户端进行连接认证才能进行服务器操作,需要用户信息。Mysql中所有用户的信息都保存在mysql数据库下的user表中。

默认的,在安装mysql的时候,如果没有创建匿名用户,那么意味着所有的用户只有一个;root超级用户

PS:修改root用户密码: alter user'root'@'localhost' identified by '新密码';

c518275f2b7c007be687583e6a0dd1b9.png

af9b7a4f181b94b7e0f0f3cf39ce4e5e.png

在mysql中,对用户的用户管理中,是由对应的host和user共同组成主键来区分用户;

User:代表用户的用户名

Host:代表本机是允许访问的客户端(ip或者主机地址)。如果host使用*,代表所有的用户(客户端)都可以进行访问

创建用户

理论上讲,可采用两种方案创建用户:

1、直接使用root用户在mysql.user表中插入记录(不推荐)

2、专门用于创建用户的SQL指令

基本语法:create user 'username'@'host' identified by ‘password’;

username:你将创建的用户名

host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%。通配符%可以用作整个主机名,或者用作主机名的一部分。如果主机名为空,表示是一个通配符,但比%通配符通配范围低。

password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

9492cf3f2f4fd9dc5a60e2fb321f7b97.png

查看mysql.user是否存在新增的用户

5cabda65d60fd94e68edeb79b0a2e13e.png

简化创建用户

00c265dac22ae615cbfb69d1c1cf9711.png

3b8232f76c4119a1116048138b923a54.png

删除用户

注意:mysql中user是带着host本身的(具有唯一性)

基本语法:drop user 'username'@'host';

修改用户密码

Mysql中提供了多种修改的方式,基本上都必须使用对应提供的一个系统函数:password(),需要靠该函数对密码进行加密处理。

使用专门的修改密码的指令

基本语法: set password for 'username'@'host' = ‘newpassword’;

如果是当前用户:set password = ‘newpassword’;

b2817ad8c315710da87a3566f5261fc5.png

权限管理

在mysql中将权限管理分为三类:

1、数据权限:增删改查(select、update、delete、insert)

2、结构权限:结构操作(create、drop)

3、管理权限:权限管理(create user、grant、revoke):通常只给管理员如此权限

授予权限:grant

将权限分配给指定的用户:

基本语法:grant 权限列表 on 数据库/*.表名/* to 用户 [with grant option];

权限列表:使用逗号分隔,但是可以使用all privileges 代表全部权限

数据库.表名:可以是单表(数据库名字.表名),可以是具体某个数据库(数据库.*),也可以是整库(*.*)

mysql中只有with grant option,对A用户进行的授权,A可以授予给其他用户,当收回对A的授权时,A授予给其他用户的权限不会被级联收回。注意with grant option也可以被授予给其他用户。

c60fbaae1545e9649a556b7819957756.png

具体权限查看:单表权限只能看到数据库中的一张表

Show语句的一个变体用来查看用户被授予的权限:

show grants for user;

c34e675034af1cabb1396eba36914367.png

取消权限:revoke

权限回收:将权限从用户手中收回。

基本语法:revoke 权限列表/all privileges on 数据库/*.表名/* from 用户;

授予权限时如果有with grant option必须再执行

revoke grant option from 'test1'@'localhost';

完整才能回收其权限。

75622247bcf9b41c902c52292bd4e058.png

权限回收,同样不需要刷新,用户马上就会感受到

5b6fb18188173276fecc35666c6ef6de.png

刷新权限:flush

(1)Flush;刷新,将当前对用户的权限操作,进行一个刷新,将操作的具体内容同步到对应的表中。此操作需要在mysql命令提示符下执行(需要以管理员身份登录)。

基本语法:flush privileges;

(2)mysqladmin flush-privileges

(3)mysqladmin reload

(2)和(3)需要在操作系统环境下运行。

最后,mysql服务器将在重新启动时重新载入授权表。

当用户下次再连接时,全局级别权限将再次被检查。当下一个use语句触发时,数据库权限将被检查,而表级别和列级别权限将在用户下次请求时检查。

密码丢失找回

如果忘记了root用户密码,就需要去找回或者重置root用户密码

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值