数据库实验七数据控制和实现

又到一周的周三了,还有两次课一次数据库实验了,后面还有一个数据库的课程设计,听说有点难。。

不怕就当是自己第一份github项目吧。

一、实验目的

1.掌握在SQL  SERVER2012中利用界面工具和存储过程进行登录账号和数据库用户的创建。

2.能用SQL语言的GRANTREVOKE命令对相关用户进行对象权限和语句权限的定义和撤销

 

二、实验准备及任务

1.复习教材上SQL语言的GRANTREVOKE命令的内容。

2使用教师已经录入相关数据的附录二的xsglsjk”数据库,定义若干用户、设计相应的访问权限完成以下内容,预先写好相应的命令。

1利用界面工具建立一个登录账户‘xsuser1’,然后将这个账户添加为xsglsjk数据库的用户

2利用存储过程sp_addlogin命令建立另两个登录账户‘xsuser2’‘xsuser3’

3然后利用存储过程sp_adduser命令将这些账户添加为xsglsjk数据库的用户,并且将‘xsuser3’在“xsglsjk数据库的用户名起名叫“wangwu”

3sa用户身份登录到SQL  Server服务器,再根据需要以不同的登录账户登录到SQL  Server服务器完成以下任务:

4将查询courses表的所有权限授给全体用户,并通过相关操作验

授权情况

5classclnospecialityinyear的查询权限numbermonitor

的修改权限授给“xsuser1”用户,并通过相关操作验证授权情况

(6)student表的查询和插入权限授给‘xsuser1’用户,再由

‘xsuser1’用户授给‘xsuser2’用户,继续由‘xsuser2’用户

授给“wangwu”用户,并通过相关操作验证授权情况

7)由sa用户将登录账户‘xsuser1’添加为“master”数据库的

用户,再由sa用户将创建数据库的权限授予用户‘xsuser1’,以‘xsuser1’用户身份登录到服务器中,创建一个名为‘newdata数据库在该数据库中建立一些表,输入数据,验证各种权限

8)由sa用户将xsglsjk数据库创建数据表和视图的权限授予

用户‘xsuser1’,并建立一些表和视图验证。

9‘xsuser1’用户身份登录到SQL Server服务器中,并试图xsglsjk数据库创建数据表和视图的权限继续授予用户‘xsuser2’, 记录执行结果。

10)由sa用户撤销用户‘xsuser1’在“xsglsjk数据库创建数据表和视图的权限

11)由sa用户撤销题(4)和题(5)的授权权限,并通过相关操作

验证授权情况

12)撤销相关用户对student表的查询和插入权限

三、实验内容及记录

 说明:① 注意记录下GRANTREVOKE命令时的步骤。

② 不同数据库用户验证GRANTREVOKE命令作用时,要另外用对

应的不同登录账号登录,打开相应的命令窗口。

1

2

3

4 

5

6

7

8

9

10

11

12

 

 

四、思考题

1、为什么说SQL的数据存取控制是自主存取控制?

2、题(9)的执行情况说明了什么?

mycode:

sp_addlogin 'xsuser2'
sp_addlogin 'xsuser3'
sp_adduser 'xsuser3','wangwu'
sp_adduser 'xsuser2'

grant all privileges
on course
to public

grant select(clno,speciality,inyear)
on class 
to xsuser1


grant update(number,monitor)
on class 
to xsuser1

grant select,insert
on student
to xsuser1
with grant option

grant select,insert
on student
to xsuser2
with grant opti

grant select,insert
on student
to wangwu
with grant option

sp_adduser 'xsuser1'   --在master的工作环境下

grant create database
to xsuser1

create database
newdata 

grant create table
to xsuser1

grant create view
to xsuser1     



--授权者无grant权限  


revoke create table
from xsuser1
revoke create view
from xsuser1

revoke select(clno,speciality,inyear)
on class
from xsuser1

revoke update(number,monitor)
on class
from xsuser1

revoke select,insert
on student
from xsuser1 cascade
 

思考题:

(2)超级用户sa在赋予用户‘xsuser1’创建数据表和视图权限时,并没有授予其授给其他用户的权限。

你可能感兴趣的:(数据库,数据库实验)