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



 

作业原地址:作业

 

目录

6.

(1)

(2)

(3)

(4)

(5)

7.

(1)

(2)

(3)

(4)

(5)

(6)

(7)

8.

(1)

(2)

(3)

(4)

(5)

(6)

(7)

 

总结

 



 

6.

对下列两个关系模式:
学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使用GRANT语句完成下列授权功能:

 

Student(Sno,Sname,Sage,Sex,Saddress,Cno);

Class(Cno,Cname,Cteacher,Cmonitor);

 

(1)

授予用户U1对两个表的所有权限,并可给其他用户授权。

 

GRANT ALL PRIVILEGES 
ON TABLE Student,Class 
TO U1
WITH GRANT OPTION

 

(2)

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

 

GRANT SELECT,UPDATE(Saddress)
ON TABLE Student 
TO U2

 

(3)

将对班级表查看权限授予所有用户。

 

GRANT SELECT 
ON TABLE Student 
TO PUBLIC

 

(4)

将对学生表的查询、更新权限授予角色R1。

 

GRANT SELECT,UPDATE
ON TABLE Student 
TO R1

 

(5)

将角色R1授予用户UI,并且U1可继续授权给其他角色。

 

GRANT R1
TO U1
WITH ADMIN OPTION

 


 

7.

今有以下两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用 SQL 的 GRANT 和REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能:

 

Staff(Sno,Sname,Sage,Spost,Wage,Dno);

Dept(Dno,Dname,Mname,Daddress,Dtel);

 

(1)

用户王明对两个表有SELECT权限。

 

GRANT SELECT 
ON TABLE Staff,Dept
TO 王明

 

(2)

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

 

GRANT INSERT,DELETE
ON TABLE Staff,Dept
TO 李勇

 

(3)

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

 

GRANT SELECT
ON TABLE Staff
WHEN USER()=Sname
TO ALL;

 

(4)

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

 

GRANT SELECT,UPDATE(Wage)
ON TABLE Staff 
TO 刘星

 

(5)

用户张新具有修改这两个表的结构的权限。

 

GRANT ALTER
ON TABLE Staff,Dept
TO 张新

 

(6)

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

 

GRANT ALL PRIVILEGES 
ON TABLE Staff,Dept 
TO 周平
WITH GRANT OPTION

 

(7)

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

 

CREATE VIEW Swage(Sname,Smax,Smin,Savg)
AS SELECT Staff.Dno,MAX(Wage),MIN(Wage),AVG(Wage) FROM Staff,Dept
WHERE Staff.Dno=Dept.Dno
GROUP BY Staff.Dno
/*最高工资、最低工资、平均工资*/

GRANT SELECT 
ON VIEW Swage
TO 杨兰

 


 

8.

针对习题7中(1)~(7)的每一种情况,撤销各用户所授予的权限

 

(1)

撤销用户王明对两个表的SELECT权限。

 

REVOKE SELECT 
ON TABLE Staff,Dept
FROM 王明

 

(2)

撤销用户李勇对两个表的INSERT和DELETE权限。

 

REVOKE INSERT,DELETE 
ON TABLE Staff,Dept
FROM 李勇

 

(3)

撤销每个职工对自己记录的SELECT权限。

 

REVOKE SELECT 
ON TABLE Staff
WHEN USER()=Sname
FROM ALL

 

(4)

撤销用户刘星对职工表的SELECT权限,对工资字段的更新权限。

 

REVOKE SELECT,UPDATE 
ON TABLE Staff
FROM 刘星

 

(5)

撤销用户张新修改这两个表的结构的权限。

 

REVOKE ALTER
ON TABLE Staff,Dept
FROM 张新

 

(6)

撤销用户周平对两个表的所有权限(读、插、改、删数据),及给其他用户授权的权限。

 

REVOKE ALL PRIVILEGES 
ON TABLE Staff,Dept 
FROM 周平

 

(7)

撤销用户杨兰的从每个部门职工中 SELECT 最高工资、最低工资、平均工资的权限

 

REVOKE SELECT
ON VIEW Swange 
FROM 杨兰
DROP VIEW Swage

 


 

总结

 

习题还好,套语句基本都可以,没有什么太大问题。

但是TABLE 那个问题还是没有解决,习题的话,我还是照着书上的把TABLE加上了。

 


完成时间:42min

          以上

                                         ————(2020.4.5)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章