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

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

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

	  GRANT ALL PRIVILEGES 
      ON TABLE 学生,班级
      TO U1
      WITH GRANT OPTION;

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

	GRANT SELECT,UPDATE(家庭地址)
	ON TABLE 学生
	TO U2
	WITH GRANT OPTION;

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

	GRANT SELECT
	ON TABLE 班级
	TO PUBLIC;

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

	GRANT SELECT,UPDATE
	ON TABLE 学生
	TO R1;

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

	GRANT R1
	TO U1
	WITH GRANT OPTION;

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

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

	GRANT SELECT
	ON TABLE 职工,部门
	TO 王明;

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

	GRANT INSERT,DELETE
	ON TABLE 职工,部门
	TO 李勇; 

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

	GRANT SELECT
	ON TABLE 职工
	 WHERE USER()=NAME TO ALL;

不太会,搜了一下。

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

	GRANT SELECT,UPDATE(工资)
	ON TABLE 职工
	TO 刘星;

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

	GRANT ALTER
	ON TABLE 职工,部门
	TO 张新;

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

	GRANT ALL PRIVILEGES 
    ON TABLE 职工,部门
    TO 周平
    WITH GRANT OPTION;

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

	CREATE VIEW 工资们
	AS
	SELECT 部门,名称,MAX(工资),MIN(工资),AVG(工资)
	FROM 职工,部门
	WHERE 职工.部门号=部门.部门号;
	
	GRANT SELECT
	ON 工资们
	TO 杨兰;

8、针对习题七,撤销各用户所授予的权限。
(1)

	REVOKE SELECT 
	ON 职工,部门
	FROM 王明;

(2)

	REVOKE INSERT,DELETE
	ON 职工,部门
	FROM 李勇; 

(3)

	REVOKE SELECT
	ON 职工
	WHERE (USER)=NAME FROM ALL;

(4)

	REVOKE SELECT,UPDATE(工资)
	ON 职工
	FROM 刘星;

(5)

	REVOKE ALTER
	ON TABLE 职工,部门
	FROM 张新;

(6)

	REVOKE ALL PRIVILEGES 
    ON TABLE 职工,部门
    FROM 周平
    WITH GRANT OPTION;

(7)

	REVOKE SELECT
	ON 工资们
	FROM 杨兰;

你可能感兴趣的:(数据库作业:第四章:数据库安全性 习题)