ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Sql Server :第四章作业

2021-04-18 10:32:04  阅读:221  来源: 互联网

标签:revoke grant Dep Server char select Sql 第四章 Staff


6.对下列两个关系模式:

  1. 学生(学号、班级、年龄、性别、家庭住址、班级号)

  2. 班级(班级号,班级名,班主任,班长)

 

create table Student
(
Snum char(15) unique,
Sname char(10),
Sage int,
Ssex char(5),
Sloc char(20),
Scla char(5)
);

create table Class
(
Cnum int,
Cname char(10),
Ctea char(10),
Cmon char(10)
);

使用grant语句完成以下授权功能:

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

grant all
on Student
to U1
with grant option;
grant all
on Class
to U1
with grant option;

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

grant select,update(Sloc)
on Student
to U2;

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

grant select
on Student
to public;

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

create role R1;
grant select ,update
on Student
to R1
with grant option;

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

grant R1
to U1
with admin option;

 

  • 有以下两个关系模式:
  1. 职工(职工号,姓名,年龄,职务,工资,部门号)
  2. 部门(部门号,名称,经理名,地址,电话号)
create table Staff
(
Stnum char(15) unique,
Stname char(10),
Stage int,
Stw char(5),
Sts int,
Stn char(5)
);

create table Dep
(
Dnum int,
Dname char(10),
Dmag char(10),
Dloc char(10),
Dcall char(13),

);

用sql的grant和revoke语句(加上视图机制)完成以下操作要求:

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

grant select
on Staff
to 王明;

grant select
on Dep
to 王明;

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

grant insert,delete
on Dep
to 李勇;

grant insert,delete
on Staff
to 李勇;

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

grant select 
on Staff
when SUSER_NAME()=Stname
to all;

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

grant select,update(Sts)
on Staff
to 刘星;

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

grant update
on Staff
to 张新;

grant update
on Dep
to 张新;

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

grant all 
on Staff
to 周平
with grant option;

grant all 
on Dep
to 周平
with grant option;

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

create view Dep_sts(DS_name,maxs,mins,avgs)
as
select Dep.Dname,max(Sts),min(Sts),avg(Sts)
from Staff,Dep
where Staff.Stnum=Dep.Dnum
group by Staff.Stnum,Dep.Dname;

grant select
on Dep_sts
to 杨兰;

8.针对上一题目中的每一种情况,撤销授权。

revoke select
on staff
from 王明;

revoke select
on Dep
from 王明;

revoke insert,delete
on Dep
from 李勇;

revoke insert,delete
on Staff
from 李勇;

--revoke select 
--on Staff
--when SUSER_NAME()=Stname
--from all;

revoke select,update
on Staff
from 刘星;

revoke update
on Staff
from 张新;

revoke update
on Dep
from 张新;

revoke all 
on Staff
from 周平 cascade;


revoke all 
on Dep
from 周平 cascade;

revoke select
on Dep_sts
from 杨兰;

标红的是需要注意的,因为报了很多错。。。。

还有一个新函数

标签:revoke,grant,Dep,Server,char,select,Sql,第四章,Staff
来源: https://blog.csdn.net/bibiobi/article/details/115819648

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有