广东海洋大学数据库实验报告.docx
- 文档编号:27499352
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:25
- 大小:4.08MB
广东海洋大学数据库实验报告.docx
《广东海洋大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《广东海洋大学数据库实验报告.docx(25页珍藏版)》请在冰豆网上搜索。
广东海洋大学数据库实验报告
实验四数据的完整性、安全性
一、实验目的
1.掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。
2.掌握SQLServer中有关用户、角色及操作权限的管理方法.
3.学会创建和使用规则、缺省。
二、实验内容
1数据库的安全性实验,通过SSMS设置SQLServer的安全认证模式.实现对SQLServer的用户和角色管理,设置和管理数据操作权限.
2数据库的完整性实验。
使用Transact-SQL设计规则、缺省、约束和触发器。
三、实验要求
1.数据的完整性实验
⑴用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):
学生情况表(XSQK)
列名
数据类型
长度
是否允许为空值
学号
Char
6
N
姓名
Char
8
N
性别
Bit
1
N
出生日期
smalldatetime
2
专业名
Char
10
所在系
Char
10
联系电话
char
11
Y
课程表(KC)
列名
数据类型
长度
是否允许为空值
课程号
Char
3
N
课程名
Char
20
N
教师
Char
10
开课学期
Tinyint
1
学时
Tinyint
1
学分
Tinyint
1
N
成绩表(XS_KC)
列名
数据类型
长度
是否允许为空值
学号
Char
6
N
课程号
成绩
Char
Smallint
3
2
N
⑵数据的实体完整性实验
1用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健
②用T-SQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健
⑶数据的参照完整性实验
①用SSMS为成绩表(XS_KC)创建外键FK_XSQK_ID,外键FK_XSQK_ID参照学生情况表(XSQK)表的学号
②用T-SQL语句成绩表(XS_KC)创建外键FK_KC_ID,外键FK_KC_ID参照课程表(KC)
表的课程号
⑷数据的用户定义完整性实验
1用T-SQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束
②用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女
③用T-SQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0~100)之间
④用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60
⑤用T-SQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2
2.将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:
学号
姓名
性别
出生日期
专业
所在系
联系电话
020101
杨颖
0
1980-7-20
计算机应用
计算机
88297147
020102
方露露
0
1981-1-15
计算机应用
计算机
88297147
020103
俞奇军
1
1980-2-20
信息管理
计算机
88297151
020104
胡国强
1
1980-11-7
信息管理
计算机
88297151
020105
薛冰
1
1980-7-29
水利工程
水利系
88297152
020201
秦盈飞
0
1981-3-10
电子商务
经济系
88297161
020202
董含静
0
1980-9-25
电子商务
经济系
88297062
020203
陈伟
1
1980-8-7
电子商务
经济系
88297171
020204
陈新江
1
1980-7-20
房建
水利系
88297171
学生情况表(XSQK):
课程表(KC):
课程号
课程名
教师
开课学期
学时
学分
101
计算机原理
陈红
2
45
3
102
计算方法
王颐
3
45
3
103
操作系统
徐格
2
60
4
104
数据库原理及应用
应对刚
3
75
5
105
网络基础
吴江江
4
45
3
106
高等数学
孙中文
1
90
6
107
英语
陈刚
1
90
6
108
VB程序设计
赵红韦
3
70
5
成绩表(XS_KC):
学号
课程号
成绩
020101
101
85
020101
102
87
020101
107
88
020102
101
58
020102
102
63
020104
107
76
020202
103
55
020202
108
80
020203
103
57
020204
103
71
3.理解默认值的概念和作用
①用语句创建名为Xi_default,值为“计算机系”的默认值
②将默认值Xi_default绑定到学生表中的所在系的属性列上
③解除学生表所在系的属性列上的默认值
④删除默认值Xi_default
注:
创建默认值的格式:
createdefault 默认值名 as ‘默认值’
默认值绑定的格式:
sp_bindefault 默认值名,<’表名.列名’︱自定义数据类型名称>
解除默认值绑定格式:
sp_unbindefault <’表名.列名’︱自定义数据类型名称>
删除默认值格式:
Dropdefault默认值名
4.理解规则的概念和作用
①用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6
②将“rule_kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正
常执行,为什么:
Insertinto课程表
Values(109,'C语言','李方',8,64,4)
不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内
③若不解除规则,能否将规则rule_kkxq直接删除?
不能,需先解除规则才能删除规则rule_ kkxq
注:
创建规则的格式:
createrule 规则名 as @列名 约束条件
规则绑定的格式:
sp_bindrule 规则名,<’表名.列名’︱自定义数据类型名称>
解除规则绑定格式:
sp_unbindrule<’表名.列名’︱自定义数据类型名称>
删除规则格式:
Droprule规则名
5.数据的安全性实验:
(1)设置身份验证模式
①写出查看当前SQLServer身份验证模式的过程,即查看当前SQLServer系统到底是采用Windows身份验证还是混合身份验证模式。
服务器->右键"属性"->选择"安全性",即可查看当前SQL Server系统的服务器验证模式
②将系统设置为Windows身份验证模式,重启SQLServer,使之生效并验证
③将系统设置为混合身份验证模式,重启SQLServer,使之生效并验证
⑵创建和管理登录账户
1)用对象资源管理器创建、查看、删除SQLServer登录账户
①分别创建两个登录帐户LoginA、LoginA1,其登录密码分别为:
123456、456,并指定LoginA登录默认的数据库为学生成绩数据库(XSCJ),指定LoginA1登录默认的数据库为master数据库。
②查看登录账户LoginA、LoginA1
③删除登录账户LoginA1
2)用T-SQL语句创建、查看、删除SQLServer登录账户
①用系统存储过程,分别创建两个登陆帐户LoginB、LoginB1,其登录密码分别为:
666、888,登录后然后所连接到的数据库均为学生成绩数据库(XSCJ)。
注:
创建新的SQLServer登录账号和登录密码的语句为:
sp_addlogin[@loginame=]'login'//登录的名称
[,[@passwd=]'password']//登录密码。
[,[@defdb=]'database']//登录的默认数据库(登录后登录所连接到的
数据库)。
默认设置为master。
例:
创建一个登陆帐户Login,登录密码为:
A,登录后然后所连接到的数据库
为master数据库。
sp_addlogin'Login','A','master'
或sp_addlogin@loginame='Login',@passwd='A',@defdb='master'
②使用系统存储过程sp_helplogins查看SQLServer登录账户
注:
查看登录账户的格式:
execsp_helplogins
③使用系统存储过程sp_droplogin从SQLServer中将登录账户LoginB1删除
注:
删除登录账户的格式:
sp_droplogin[@loginame=]'登录名称'
⑶创建和管理数据库用户
1)用对象资源管理器创建、查看、删除数据库用户
①在学生成绩数据库(XSCJ)中创建数据库用户UserA,使其所对应的帐号为LoginA
②能否再创建一个数据库用户ABC,使其对应登录的帐号为LoginA,若不能写出其原因?
不能,同一个数据库的数据库用户只能有一个登录账户
2)用语句创建、查看、删除数据库用户
①用系统存储过程sp_grantdbaccess在学生成绩数据库(XSCJ)中创建一个数据库用户UserB,使其所对应的登录帐号为LoginB
注:
为SQLServer登录在当前数据库中添加一个安全用户的语句为:
sp_grantdbaccess[@loginame=]'login'//当前数据库中的登录账号
[,[@name_in_db=]'name_in_db'//数据库中帐户的用户名
②用系统存储过程sp_helpuser查看数据库用户
注:
查看数据库用户的格式:
sp_helpuser[[@name_in_db=]'security_account']
③用系统存储过程sp_revokedbaccess删除数据库用户ABC1
注:
删除数据库用户的格式:
sp_revokedbaccess[@name_in_db=]'name'
⑷创建和管理角色
1)服务器角色的管理
①用对象资源管理器将登录帐户LoginA加到sysadmin的角色中。
②用系统存储过程sp_addsrvrolemember将登录帐户LoginB加到sysadmin的角色中。
注:
为登录账户指定服务器角色的系统存储过程sp_addsrvrolemember的格式为:
sp_addsrvrolemember'登录账号',服务器角色名称
③用系统存储过程sp_dropsrvrolemember删除登录账户LoginA的服务器角色sysadmin
注:
删除登录账户的服务器角色的系统存储过程sp_dropsrvrolemember的格式为:
sp_dropsrvrolemember'登录账号',服务器角色名称
2)数据库角色的管理
①用对象资源管理器将数据库用户UserA添加到db_owner数据库的角色中
②用系统存储过程sp_addrolemember将数据库用户UserB添加到db_owner数据库角色中。
注:
为数据库用户指定数据库角色的系统存储过程sp_addrolemember的格式为:
sp_addrolemember[@rolename=]'role',//当前数据库角色的名称
[@membername=]security_account/*添加到角色的安全帐户。
security_account可以是所有有效的SQLServer用户、SQLServer角色或是所有
已授权访问当前数据库的MicrosoftWindowsNT®用户或组。
*/
③用系统存储过程sp_droprolemember删除数据库用户UserB的db_owner数据库角色
注:
删除数据库用户的数据库角色的系统存储过程sp_droprolemember的格式为:
sp_droprolemember'数据库角色名称',数据库用户账户
3)用户自定义角色的管理
①在学生成绩数据库(XSCJ)中创建一个角色RoleB
注:
在当前数据库创建新的角色:
sp_addrole[@rolename=]'role'//新角色的名称
[,[@ownername=]'owner']/*新角色的所有者,owner默认值为
dbo。
owner必须是当前数据库中的某个用户或角色*/
②将用户UserB加入到自定义的RoleB这个角色中
注:
将数据库户添加到自定义数据库角色的格式为:
sp_addrolemember[@rolename=]'role',//当前数据库角色的名称
[@membername=]security_account/*添加到角色的安全帐户。
security_account可以是所有有效的SQLServer用户、SQLServer角色或是所有
已授权访问当前数据库的MicrosoftWindowsNT®用户或组。
*/
③将学生成绩数据库(XSCJ)中学生表的Select权限授予RoleB
④用帐户LoginB身份登陆,并学生成绩数据库(XSCJ)中执行
CreateTableTest(aavarchar(10))
Select*from学生情况表
Select*from成绩表
并查看以上各语句能否正常执行,为什么?
如何才能使不能执行的语句执行?
如果用帐号LoginA登陆,上面的语句能否执行。
不行,因为UserB没有Create Table权限
GRANT CREATE TABLE TO UserB
可以
⑤从角色RoleB中去除用户UserB
⑥从学生成绩数据库(XSCJ)中删除用户UserB
⑦从学生成绩数据库(XSCJ)中删除角色RoleB
⑧从SQLServer中删除登陆帐户LoginB
注:
在删除登录帐号之前,应先将登录帐号所对应的用户帐号全部删除,不然将无法删除登录帐号。
⑸权限的授予与回收
1)权限的授予
①把查询XSQK表的权限授予用户UserA
②把对KC表全部操作权限授予用户UserA
③把对XS_KC表的查询权限授予所有用户
④把删除XSQK表和修改学生学号的权限授予用户UserA
⑤把插入XSQK表的权限授予用户UserA,并允许将此权限再授予其它用户
⑥把在学生成绩数据库(XSCJ)中建立表的权限授予用户UserA
2)权限的回收
①撤销用户UserA修改学号的权限
②撤销所有用户对XS_KC表的查询权限
③撤销用户UserA对XSQK表的插入权限
四、实训思考题
1.一个用户要访问数据库须要经过哪几个安全认证阶段?
2.简述登录账户和用户账户间区别与联系
3.用户、角色和权限的职能,以及它们之间的关系
4.服务器角色有哪些,并分别简述其功能?
用户可以创建服务器角色吗?
5.数据库角色有哪些,并分别简述其功能?
用户可以创建数据库角色吗?
6、什么是数据库的安全性,可以通过哪些措施来保证数据库的安全性?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广东 海洋大学 数据库 实验 报告