6.对下列两个关系模式:
学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使用grant语句完成下列授权功能:
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。
grant all privileges on student,class to U1 with grant option;
(2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。
grant select,update(家庭住址),delete on student to U2;
(3)将对班级表查看权限授予所有用户。
grant select on class to public;
(4)将对学生表的查询、更新权限授予角色R1。
grant select,update on student to R1;
(5)将角色R1授予用户U1,并且U1可继续授权给其他角色。
grant R1 to U1 with admin option;
7.今有以下两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的grant和revoke语句(加上视图机制)完成以下授权定义或存取控制功能。
(1)用户王明对两个表具有select权限。
Grant select on 职工,部门 to 王明
(2)用户李勇对两个表有insert和delete权限。
Grant insert,delete on 职工,部门 to 李勇
(3)每个职工只对自己的纪录有select权限。
Grant select on 职工 with user()=name to all;
(4)用户刘星对职工表有select权限,对工资字段具有更新权限。
Grant select,update(工资) on 职工 to 刘星
(5)用户张新具有修改这两个表的结构的权限。
Grant alter table on 职工,部门 to 张新;
(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。
Grant all privileges on 职工,部门 to 周平 with grant option;
(7)用户杨兰具有从每个部门职工中select最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。
Create view 部门工资 as
Select 部门,名称,max(工资),min(工资),avg(工资)
from 职工,部门 where 职工.部门号=部门.部门号
Group by 职工,部门号
Grant select on 部门工资 to 杨兰;
8.针对习题7中(1)~(7)的每一种情况,撤销各用户所授予的权限。
(1)用户王明对两个表具有select权限。
revoke select on 职工,部门from 王明;
(2)用户李勇对两个表有insert和delete权限。
revoke insert,delete on 职工,部门 from 李勇
(3)每个职工只对自己的纪录有select权限。
revoke select on 职工 with user()=name from all;
(4)用户刘星对职工表有select权限,对工资字段具有更新权限。
revoke select,update on 职工 from 刘星
(5)用户张新具有修改这两个表的结构的权限。
revoke alter table on 职工,部门 from 张新;
(6)用户周平具有对两个表的所有权限(读、插、改、删数据),并具有给其他用户授权的权限。
revoke all privileges on 职工,部门 from 周平;
(7)用户杨兰具有从每个部门职工中select最高工资、最低工资、平均工资的权限,他不能查看每个人的工资。
revoke select on 部门工资 from 杨兰;
drop view 部门工资;