数据库系统(三)——数据库安全性控制

  1. 一、实验目的:
  2. 二、实验内容:
  3. 三、实验过程:
    1. 1、题目要求:
    2. 2、在学生选课数据库的基础上,按以下要求完成权限设置。

一、实验目的:

  1. 理解自主存取控制和视图机制在数据库安全性中的应用;

  2. 熟练掌握用户管理、授予权限、收回权限的SQL语句,并验证其有效性;

  3. 理解角色的作用,能够区分角色和用户。

二、实验内容:

针对不同用户对学生选课数据库的不同权限要求,完成以下实验内容。

  1. 创建用户。掌握创建用户的语法结构,根据题目要求运用相关SQL语句创建必要的用户。

  2. 创建视图。根据题目要求,创建针对特定数据的视图。

  3. 权限授予和收回。理解和掌握GRANT和REVOKE语法结构的各个组成成分,结合用户和角色管理,分别设计不同的存取权限语句,并调试成功。

  4. 结合应用需求,理解角色的作用和角色管理的相关操作。

三、实验过程:

1、题目要求:

1.数据库:学生选课数据库
2.数据表:学生表 student、课程表 course、选课表 SC
3.用户:admin、stu、teacher、
4.权限要求:在这里插入图片描述
说明:
(1)admin 用户拥有对数据库的所有操作权限,且能够为其他用户授予权限。
(2)teacher 用户在 student 表上只能查看 Sno、Sname、Ssex 和 Sdept 字段。
(2)学生不能更新 Sno 和院系字段。
(3)teacher 在 SC 表上只能更新 grade 字段。

2、在学生选课数据库的基础上,按以下要求完成权限设置。

1、使用 root 账号登录,创建用户 stu、teacher 和 amdin,密码为123:

create user 'stu'@'localhost' identified by '123';

create user 'teacher'@'localhost' identified by '123';

create user 'admin'@'localhost' identified by '123' with grant option;

新创建的用户可登录mysql,但无权限查看stu_course数据库。

2、根据表格要求及说明为用户设置相应的权限,并在设置完成后,测试设置的有效性。

①设置 admin 的权限:

grant all privileges
on student,course,SC to 'u1'@'localhost'
with grant option

②设置 stu 的权限:

grant select 
on student,course,SC to'stu'@'localhost';

grant update 
on student to'stu'@'localhost';

grant insert
on SC to'stu'@'localhost';

③设置 teacher 的权限:

grant select on student,course,SC to 'teacher'@'localhost';

grant update on SC(grade) to 'teacher'@'localhost';

3、创建用户 u1 和 u2,通过 admin 用户为 u1 授予 student 表上的 insert 权限,并允许 u1为其他用户授予该权限。

create user 'u1'@'localhost' identified by '123';

create user 'u2'@'localhost' identified by '123';
grant insert
on student to 'u1'@'localhost';
with grant option

4、通过 u1 用户为 u2 用户授予 student 表上的 insert 权限。

grant insert
on student to 'u2'@'localhost';

5、收回 u1 在 student 表上的 insert 权限,验证 u1 和 u2 的权限变化。

revoke insert 
on student to 'u1'@'localhost';

默认会级联收回权限。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏