内容发布更新时间 : 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函数,需要百度函数用法;执行语句过程中会发生错误,可能是语句冲突,要及时检查并改正。建表是要认真输入数据,以防出现错误。
解决方法:看书弄清知识点,寻求同学老师的帮助。 总之,一定要细心·耐心,遇到困难解决困难