掌握自主存取控制权限的定义和维护方法。
定义用户、角色,分配权限给用户、角色,回收权限,以相应的用户名登录数据库验证权限分配是否正确。选择一个应用场景,使用自主存取控制机制 设计权限分配。可以采用两种方案。
方案一:采用 SYSTEM 超级用户登录数据 库,完成所有权限分配工作,然后用相应用户名登录数据库以验证权限分配正 确性;
方案二:采用 SYSTEM 用户登录数据库创建三个部门经理用户,并分配 相应的权限,然后分别用三个经理用户名登录数据库,创建相应部门的 USER, ROLE,并分配相应权限。
实验重点:定义角色,分配权限和回收权限。
实验难点:实验方案二实现权限的再分配和回收。
应用场景:设有一个企业,包括采购、销售和客户管理等三个部门,采购部门经理David,采购员Jeffery;销售部门经理Tom,销售员Jane;客户管理部门经理Kathy,职员Mike。该企业一个信息系统覆盖采购、销售和客户管理等三个部门的业务,其数据库模式为TPC-H数据模式。
用户 | 权限 |
---|---|
David | 对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。 |
Jeffery | 本部门信息具有查看、插入权限 |
Tom | 对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。 |
Jane | 本部门信息具有查看、插入权限 |
Kathy | 对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。 |
Mike | 本部门信息具有查看、插入权限 |
采用 SYSTEM 超级用户登录数据 库,完成所有权限分配工作,然后用相应用户名登录数据库以验证权限分配正 确性;
补充:
CREATE USER 'niuben'@'localhost' IDENTIFIED BY '123456';CREATE USER 'niuben'@'192.168.1.101_' IDENDIFIED BY '123456';CREATE USER 'niuben'@'%' IDENTIFIED BY '123456';CREATE USER 'niuben'@'%' IDENTIFIED BY '';CREATE USER 'niuben'@'%';
host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
‘%’ :哪台主机上可以登录mysql,%是通配符指的是任意IP,也可以指定具体的IP,或者localhost代表本机才可以登录。
password: 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器例子
角色跟用户的区别在于:角色没有登录权限,而用户有,然后其它的跟用户操作基本一样。
为各部门分别创建一个职员角色,对本部门信息具有查看、插入权限
为各部门创建一个经理角色,相应角色对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。
给各部门经理分配权限
指定了with admin option子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色
给各部门职员分配权限
回收Mike的客户部门职员权限
以David用户名登陆数据库,验证采购部门经理的权限
退出root,以David作为用户登陆:
查看采购表
输入指令发现无法没有权限,查了资料发现是角色没有激活
登录root激活所有角色后就可以正常使用了
set global activate_all_roles_on_login=ON;
采用 SYSTEM 用户登录数据库创建三个部门经理用户,并分配 相应的权限,然后分别用三个经理用户名登录数据库,创建相应部门的 USER, ROLE,并分配相应权限。
方案二和方案一的区别仅仅是各部门的user、role不再由root创建,而是用root创建的各个部门经理来创建。
三个部门的实现过程其实是一样的。为了减少赘述,方案二仅以采购部为例进行实现。
1.修改权限后要输入flush privileges刷新;
2.all 不包括创建用户权限,要单独赋予全局创建用户权限
3.根据报错提示去修改
4.使用Navicat操作,查看SQL预览获得SQL语句
5.最最简单的方式! 直接使用Navicat进行可视化操作
本文发布于:2024-01-31 22:00:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170670961431644.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |