mysql 查看个人版,MySQL系列-权限管理

MySQL系列-权限管理

运维少年 运维少年

系列文章说明

MySQL系列文章包含了软件安装、具体使用、备份恢复等内容,主要用于记录个人的学习笔记,主要使用的MySQL版本为5.7.28,服务器系统版本为CentOS 7.5。本章节为数据库权限管理。

权限

什么是权限?

① MySQL的权限是针对用户设计,管理员可以根据不同的用户赋予不同的权限,权限的作用对象为数据库和表。即对用户操作对象的行为进行限制。

② Linux则跟MySQL不同,Linux的权限更多的是文件属性,如我们可以通过chmod或者chown等命令对文件权限的属性进行修改。

权限的表现形式是什么?

① MySQL的权限表示形式为:用户的增删改查权限

② Linux的权限通常表示为:文件的rwx属性

如何查看权限?

MySQL数据库可以使用show命令查看用户的权限信息。

查看用户授权常用格式

show grants for 用户;

查看yunwei用户的权限信息

show grants for yunwei@'%';

94706ea13a86e0723a7c18ea9db6b307.png

如何添加权限

MySQL数据库添加权限使用的命令为grant,添加授权在用户重新连接后才生效。

版本说明

① 8.0版本之前,grant命令可以用于创建用户和权限赋值

② 8.0(含)版本之后,grant命令只能用于权限赋值

③ 为了命令能够通用,本文使用通用的方式进行配置

添加授权常用格式:

grant 权限1,权限2,权限... on 对象(数据库/表) to 用户;

添加权限 管理员权限

一般来说,管理员拥有所有权限,在添加管理员用户时,权限字段可以通过ALL参数设置,将所有操作对象权限赋予管理员用户。

创建一个管理员user1,并赋予管理员权限。

create user user01@'%' identified by '123'; # 创建用户

grant all on *.* to user01@'%'; # all为所有权限 *.* 表示所有的数据库和表

如果该管理员需要拥有对其他用户管理权限时,应在赋值后面添加with grant option字段

grant all on *.* to user01@'%' with grant option;

测试无管理用户权限时,对用户权限管理情况。

select user,host from mysql.user; # 查看用户

grant select on mysql.* to yunwei@'%'; # 赋予mysql数据库所有表的select权限给yunwei

a217c45569e50715ca58ec34a6c673a6.png

测试有管理用户权限时,对用户权限管理情况

6e23aed33143f78ec3c2afcc333fcd50.png

如果用户权限没有变化,请使用以下命令刷新权限信息

flush privileges;

添加权限 普通用户权限

一般来说,对普通用户的权限管理会精细到某个数据库或者表。例如app用户只能管理app数据库,yunwei用户只能管理app数据库的user表等。

对user02用户赋予app数据库的查询和创建表权限

grant create,select on app.* to 'user02'@'%'; # 赋予权限

flush privileges; # 刷新权限信息

show grants for 'user02'@'%'; # 查看用户权限

26426dd6fc0ba1b73d2c3f3477607eee.png

测试user02在app数据中创建表user和查看表

select user(); #查看当前用户

create table app.user(id int,name varchar(20));

8ae41db22c16069760b68d6f43b43981.png

测试user02对app数据库中的其他操作和对其他数据库的操作

a83782c60634905a5920eec8913a42bb.png

✎ 注意

MySQL数据库多次授权时不会覆盖原来的权限!例如user01有select权限,下次授权create权限给user01,这时user01会拥有select和create两种权限。

4768260082294accf70b77fabe68310d.png

如何删除授权

MySQL数据库一般使用revoke命令对用户的权限进行移除,移除授权在用户重新连接后才生效。

删除授权的一般格式:

revoke 权限 on 对象 from 用户;

删除user02用户对app数据库的select权限

show grants for 'user02'@'%'; # 查看用户权限

revoke select on app.* from 'user02'@'%'; # 删除授权

show grants for 'user02'@'%'; # 查看用户权限

1617160a76598b8910775bca61ec6eee.png

删除user02用户对app库的所有权限

show grants for 'user02'@'%'; # 查看用户权限

revoke all on app.* from 'user02'@'%'; # 删除授权

show grants for 'user02'@'%'; # 查看用户权限

825f640abbeaee9976686658c0696a6b.png

如何查看权限

查看权限 用户权限

用户权限可以使用show命令查看,也可以查看数据库表记录。

show grants for 用户;

查看数据表中的记录

select * from mysql.user where user='user02'\G;

430de8f769ed5e3b3e8181f4b4f8b04b.png

查看权限 查看数据库权限信息

数据库权限信息保存在mysql.db表中

select * from mysql.db where Db='app'\G;

6bad5b8d498fab7fbf29e603c431e672.png

查看权限 其他对象权限

2b72ddc01c9c498293c7d44e0b0b36ff.png

MySQL常用权限

cd9d37c457fc840076b522c4e588aaba.png

个人思维导图

59430fd98669f1e805274a25fb7acbfd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值