【数据库】实验 2.1 自主存取控制实验

阅读: 评论:0

【数据库】实验 2.1 自主存取控制实验

【数据库】实验 2.1 自主存取控制实验

(1)实验目的

掌握自主存取控制权限的定义和维护方法。

(2)实验内容和要求

定义用户、角色,分配权限给用户、角色,回收权限,以相应的用户名登录数据库验证权限分配是否正确。选择一个应用场景,使用自主存取控制机制 设计权限分配。可以采用两种方案。

方案一:采用 SYSTEM 超级用户登录数据 库,完成所有权限分配工作,然后用相应用户名登录数据库以验证权限分配正 确性;

方案二:采用 SYSTEM 用户登录数据库创建三个部门经理用户,并分配 相应的权限,然后分别用三个经理用户名登录数据库,创建相应部门的 USER, ROLE,并分配相应权限。

(3)实验重点和难点

实验重点:定义角色,分配权限和回收权限。

实验难点:实验方案二实现权限的再分配和回收。

(4)实验过程

应用场景:设有一个企业,包括采购、销售和客户管理等三个部门,采购部门经理David,采购员Jeffery;销售部门经理Tom,销售员Jane;客户管理部门经理Kathy,职员Mike。该企业一个信息系统覆盖采购、销售和客户管理等三个部门的业务,其数据库模式为TPC-H数据模式。

用户权限
David对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。
Jeffery本部门信息具有查看、插入权限
Tom对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。
Jane本部门信息具有查看、插入权限
Kathy对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。
Mike本部门信息具有查看、插入权限
创建表格:

方案一

采用 SYSTEM 超级用户登录数据 库,完成所有权限分配工作,然后用相应用户名登录数据库以验证权限分配正 确性;

1.创建用户

补充:

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: 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器例子

2.查看已有用户

3.创建角色并分配权限

角色跟用户的区别在于:角色没有登录权限,而用户有,然后其它的跟用户操作基本一样。

  • 为各部门分别创建一个查询角色,并分配相应的查询权限

  • 为各部门分别创建一个职员角色,对本部门信息具有查看、插入权限

  • 为各部门创建一个经理角色,相应角色对本部门的信息具有完全控制权限,对其他部门的信息具有查询权。经理有权给本部门职员分配权力。

4.给用户分配权限
  • 给各部门经理分配权限

    指定了with admin option子句,则获得某种权限的角色或用户还可以把这种权限再授予其他的角色

  • 给各部门职员分配权限

5.回收角色或用户权限
  • 收回客户经理角色的销售信息查看权限

  • 回收Mike的客户部门职员权限

6.验证权限分配正确性
  • ​ 以David用户名登陆数据库,验证采购部门经理的权限

    • 退出root,以David作为用户登陆:

    • 查看采购表

      输入指令发现无法没有权限,查了资料发现是角色没有激活

      登录root激活所有角色后就可以正常使用了

      set global activate_all_roles_on_login=ON;
      

方案二

采用 SYSTEM 用户登录数据库创建三个部门经理用户,并分配 相应的权限,然后分别用三个经理用户名登录数据库,创建相应部门的 USER, ROLE,并分配相应权限。

方案二和方案一的区别仅仅是各部门的user、role不再由root创建,而是用root创建的各个部门经理来创建。

三个部门的实现过程其实是一样的。为了减少赘述,方案二仅以采购部为例进行实现。

1.新建数据库lab2.2

2.创建用户

3.创建角色并分配权限

4.以DAVID用户名登陆数据库

5.创建用户

6.创建角色并分配权限

8.验证权限分配正确性

总结:

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 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23