数据库作业12:第四章:数据库安全性 习题

6.对两个关系模式
学生(学号,姓名,年龄,性别,家庭住址,班级号)
Student(Sno,Sname,Sage,Ssex,Saddress,Sclass)
班级(班级号,班级名,班主任,班长)
Class(Cno,Cname,Cteacher,Cmonitor)
使用GRANT语句实现下列授权功能:
1)授予用户U1两个表的所有权限,并可给其他用户授权

GRANT ALL PRIVILIGES
 ON Student,Class
 TO U1
 WITH GRANT OPTION;

2)授予用户U2对学生表具有查看权限,对家庭住址有更新权限

GRANT SELECT UPDATE(Saddress)
 ON Student
 TO U2;

3)将对班级查看的权限授予所有用户

GRANT SELECT
 ON Class
 TO PUBLIC

4)将对学生表的查询,更新权限授予R1

CREATE ROLE R1;
GRANT SELCT,UPDATE
 ON Student
 TO R1;

5)将角色R1授权给用户U1,并且U1可持续授权给其他角色

GRANT R1 TO U1;
 WITH GRANT OPTION;

7.今有以下两个关系模式
职工(职工号,姓名,年龄,职务,工资,部门号)

Worker(Wno,Wname,Wage,Wjob,Wsalary,Wdept)
部门(部门号,名称,经理名,地址,电话号)
Dept(Dno,Dname,Dmanager,Daddress,Dtele)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制
8.针对习题7的1)-7)的每一种情况,撤销各用户所授予的权限。(以下答案为SQL语言,并非SQL Server中的运行语言,存在差异,详情请参考->链接地址)

1)用户王明对以上两个表有SELECT权限

 GRANT SELECT
 ON Worker,Dept
 TO WangMing

撤销:

REVOKE SELECT
ON Worker,Dept
FROM WangMing

2)用户李勇对两个表有INSERT和DELETE权限

GRANT SELECT,DELETE
 ON Worker,Dept
 FROM WangMing

撤销:

REVOKE SELECT,DELETE
 ON Worker,Dept
 FROM WangMing

3)每个职工只对自己的记录有SELECT权限

 GRANT SELECT
 ON Worker
 TO PUBLIC;

撤销:

REVOKE SELECT
 ON Worker
 FROM PUBLIC

4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限

 GRANT SELECT,UPDATE(Wsalary)
 ON Worker
 TO LiuXing

撤销:

REVOKE SELECT,UPDATE(Wsalary)
 ON Worker
 FROM LiuXing

5)用户张欣具有修改这两个表的结构的权限

GRANT UPDATE
 ON Worker,Dept
 TO ZhangXin

撤销:

REVOKE UPDATE
 ON Worker,Dept
 FROM ZhangXin

6)用户周平具有对两个表的所有权限(读,插,改,删数据),并且具有给其他用户授权的权限。

GRANT ALL PRIVILIGES
 ON Worker,Dept
 TO ZhouPing

撤销:

REVOKE ALL PRIVILIGES
 ON Worker,Dept
 FROM ZhouPing

7)用户杨兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权限,他不能查看每个人的工资。

CREATE VIEW Salary
 AS
 SELECT (MAX(WSalary),MIN(Wsalary),AVG(Wsalary))
 FROM Worker,Dept
 WHERE Worker.Wdept=Dept.Dno
 
 GRANT SELECT
 ON Salary
 TO YangLan;

撤销:

REVOKE SELECT
ON Salary
FROM YangLan;

你可能感兴趣的:(数据库学习中)