数据库第四章作业-数据库安全性

目录

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

GRANT ALL PRIVILEGES

ON 学生, 班级

TO U1

WITH GRANT OPTION;

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

GRANT SELECT, UPDATE(家庭住址)

ON 学生

TO U2;

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

GRANT SELECT

ON 班级

TO PUBLIC;

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

CREATE ROLE R1;

GRANT SELECT, UPDATE

ON 学生

TO R1;

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

GRANT R1

TO U1

WITH GRANT OPTION;

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

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

①授权

GRANT SELECT

ON 职工, 部门

TO 王明;

②收回

REVOKE SELECT

ON 职工,部门

FROM 王明;

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

①授权

GRANT INSERT, DELETE

ON 职工,部门

TO 李勇;

②收回

REVOKE INSERT, DELETE

ON 职工, 部门

FROM 李勇;

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

①授权

GRANT SELECT

ON 职工

WHEN USER()=NAME

TO ALL;

②收回

REVOKE SELECT

ON 职工

WHEN USER()=NAME

FROM ALL;

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

①授权

GRANT SELECT, UPDATE(工资)

ON 职工

TO 刘星;

②收回

REVOKE SELECT, UPDATE(工资)

ON 职工

FROM 刘星;

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

①授权

GRANT ALTER TABLE

ON 职工, 部门

TO 张新;

②收回

REVOKE ALTER TABLE

ON 职工, 部门

FROM 张新;

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

①授权

GRANT ALL PRIVILEGES

ON 职工, 部门

TO 周平

WITH GRANT OPTION;

②收回

REVOKE ALL PRIVILEGES

ON 职工, 部门

FROM 周平;

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

①授权

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

②收回

REVOKE SELECT

ON 部门工资

FROM 杨兰;

DROP VIEW 部门工资;

你可能感兴趣的:(作业,数据库,sql)