权限管理
- 什么是权限:用户可以执行哪些操作
- 权限分类
1)用户类:创建/删除/修改用的权限
给其他用户授权的权限
2)库/表操作:建库/删库/修改库的权限
建表/删表/修改表的权限
3)数据操作:增删改查 - 权限相关的表
1)user:最重要的一个系统表,存储了用户,密码以及用户所拥有的的权限
2)db:记录了库的授权信息
3)table_priv:记录了表的授权信息
4)column_priv:记录了对字段的授权信息 - 如何操作权限
1)授予权限- 语法:grant 权限列表 on 库名.表名 to ‘用户名’@‘客户端地址’
[identified by ‘密码’] [with grant option ] - 说明
权限列表:表示授权哪些权限
ALL privileges :所有权限
select :只授权查询权限
select ,insert :授权查询,插入权限
库名.表名
.:所有库下的所有表
bank.*:bank库下的所有表
bank.accct:bank库下的acct表授权
客户端
% : 表示所有的客户端(任意机器)
localhost: 表示只能从本机登录
192.168.1.5 : 表示只能从指定的IP机器登录
identified by ‘密码’ : 设置用户密码
with grant option : 用户是否具有授权的权限- 示例:创建Tom用户,只授权eshop库下所有表的查询权限
- 第一步:创建Tom用户并授权
grant select on eshop.* to ‘Tom’@’%’ identified by ‘123456’; - 第二步:刷新权限生效
flush privileges; - 第三步:使用Tom用户登录,执行以下操作
进入MySQL库,失败
进入eshop库,成功
在eshop 中执行查询,成功
在eshop中执行增删改,失败 - 练习
创建Jerry用户,授权增删改查权限,并且只在本机登录,密码为123456
grant delete ,update ,select ,alter on eshop.* to ‘Jerry’@‘localhost’ identified by ‘123456’;
2)吊销权限
- 第一步:创建Tom用户并授权
- 示例:创建Tom用户,只授权eshop库下所有表的查询权限
- 语法;
revoke 权限列表 on 库名.表名 from ‘用户名’@‘客户端地址’; - 示例: 吊销Jerry用户eshop 库下所有 表的删除权限
revoke delete on eshop.* from ‘Jerry’@‘localhost’;
3)查询权限 - 查看自己的权限: show grants;
- 查看别人的权限: show grants for ‘Tom’@’%’;
锁(理解)
1.概念:对某个
- 语法:grant 权限列表 on 库名.表名 to ‘用户名’@‘客户端地址’