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

内容发布更新时间 : 2024/12/23 8:41:58星期一 下面是文章的全部内容请认真阅读。

数据库原理及应用

实验报告

一、 实验目的与要求

使学生加深对数据安全性和完整性的理解。并掌握 SQL Server中有关用户、角色及操作权限的管理方法。熟悉通过SQL语句对数据进行完整性控制。

题 目:专 业:班 级:学 号:姓 名:

数据库安全性与完整性实验 计算机科学与技术 1420542 30 王朔

太原工业学院计算机工程系

2016年11月20日

二、 实验内容

数据库的安全性实验,在 SQL Server企业管理器中,设置 SQL Server的安全认证模式,实现对SQL Server的用户和角色管理,设置和管理数据操作权限。

具体内容如下: 1. 设置SQL Server服务器身份验证模式(Windows或SQL Server和Windows(S) 认证模式)。 2. 登录的管理

创建一个SQL Serve登录用户 3. 数据库用户的管理

登录用户只有成为数据库用户(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。

4. 角色的管理

创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。 5.在学生表中定义主键、外键约束。

6.在课程表的“课程名”字段上定义唯一约束。

7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100。“课程号”字段只能输入数字字符。

8.定义完整性约束命名子句,限制学生表的“性别”字段,使之只能取“男、女”值。

9.在学生表中增加出生日期字段,并定义完整性约束命名子句,使出生年月的默认值取当前日期。

三、 解决方案

create role r1

grant select,update,insert on student to r1;4

create table student3 (sno char(9) primary key, sname char(20) not null, ssex char(2)

constraint c1 check(ssex in ('男','女')), sage smallint, sdept char(20) );

alter table student3 add birthday date default getdate(); create table course3 (cno int primary key , cname char(40)unique, cpno char(4), ccredit smallint, );

7create table sc3 (sno char(9) , cno int ,

grade smallint check(grade>=0 and grade<=100), primary key(sno,cno),

foreign key(sno)references student3(sno), foreign key(cno)references course3(cno) );

四、 实验结果

1. 设置SQL Server服务器身份验证模式 2. 登录的管理

3. 数据库用户的管理 4. 角色的管理

5.在学生表中定义主键、外键约束。

6.在课程表的“课程名”字段上定义唯一约束。

7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100。“课程号”字段只能输入数字字符。

8.定义完整性约束命名子句,限制学生表的“性别”字段,使之只能取“男、女”值。

9.在学生表中增加出生日期字段,并定义完整性约束命名子句,使出生年月的默认值取当前日期。

五、出现的问题及解决的方法

出现的问题:在学生表中增加出生日期用到了getdate函数,需要百度函数用法;执行语句过程中会发生错误,可能是语句冲突,要及时检查并改正。建表是要认真输入数据,以防出现错误。

解决方法:看书弄清知识点,寻求同学老师的帮助。 总之,一定要细心·耐心,遇到困难解决困难