实 验 四 数据库完整性与安全性 下载本文

实 验 四 数据库完整性与安全性

一.实验目的:

理解并掌握利用SQL Server 2000进行完整性和安全性控制的基本操作和命令。并熟悉触发器的使用。

二.实验属性:

设计性。

三.实验仪器设备及器材:

装有SQL Server 2000的电脑。

四.实验要求

1. 预习SQL Server 2000中触发器的概念和使用方法,以及利用create trigger语句定义触发器的方法。

2. 预习SQL Server 2000中安全性架构,以及创建安全性账户和数据库角色等的方法。

2. 实验前仔细阅读实验指导书,理解实验要求。

3. 实验中要求完成如下工作(其中涉及的表是实验一中建立的表):

五.实验内容 1. 触发器的使用

1.1 创建一个insert触发器,当在Student表中插入一条新记录时,给出‘你已经插入了一条新记录!!!’的提示信息。

1.2 创建一个insert触发器,当在SC表中插入一条新记录时,Sno和Cno必须是student和Course中存在的学号和课程号,且Grade应该在0----100之间。

1.3 创建一个after触发器,在Student表中删除某学生的记录时,删除其相应的选

课记录。

1

1.4 创建一个instead of 触发器,当在Course表中删除记录时,不允许删除Course表中的数据。

2. 数据库安全性

2.1 在企业管理器中创建数据库用户U1、U2、U3和数据库角色R1、R2、R3,并对其操作权限进行设置。

2.2 使用SQL语言对数据库用户和角色的权限的授予。

(1) 把查询Student表的权限授给用户U1:

(2) 把对Student表和Course表的全部操作权限授予用户U2和U3

(3) 把对Student表的Insert操作权限授予用户U2,并允许将此权限再授予其它用户。

2

2.3 使用SQL语言进行数据库对用户和角色权限的收回。

2.3.1 把用户U2对Student表的Insert的权限收回。

2.3.2 收回所有用户对表student的查询权限

2.3.3 通过角色来实现将一组权限授予一个用户。 (1) 先在企业管理器下创建一个角色R1

(2) 在企业管理器下和使用SQL脚本两种形式对角色授予权限,使R1

拥有对Student表的SELECT、UPDATE、INSERT权限。

(3) 将这个角色授予用户U4,使其拥有角色R1所包含的全部权限

(SELECT、UPDATE、INSERT) 。

(4) 通过R1收回U4的3个权限(SELECT、UPDATE、INSERT) 。 (5) 对角色R1权限的修改

(6) 收回角色R1对Student表的查询权限

3