【数据库作业12】数据库安全性习题

1、对下列两个关系模式:
学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使用GRANT语句完成下列授权功能:
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。

grant all privileges
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;

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

8.针对习题7的1)-7)的每一种情况,撤销各用户所授予的权限。
(1)用户王明对两个表有SELECT权限。

grant select
on worker
to WangMing
grant select
on apartment
to WangMing;

撤销权限:

REVOKE SELECT
ON Worker,Dept
FROM WangMing

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

grant insert,delete
on worker
to Liyong
grant insert,delete
on apartment
to Liyong;

撤销权限

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(salary)
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;

你可能感兴趣的:(【数据库作业12】数据库安全性习题)