广东海洋大学数据库实验报告_第1页
广东海洋大学数据库实验报告_第2页
广东海洋大学数据库实验报告_第3页
广东海洋大学数据库实验报告_第4页
广东海洋大学数据库实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.实验四 数据的完整性、安全性一、 实验目的1 掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。2 掌握 SQL Server中有关用户、角色及操作权限的管理方法3 学会创建和使用规则、缺省。二、 实验内容1 数据库的安全性实验,通过SSMS设置 SQL Server的安全认证模式实现对SQL Server的用户和角色管理,设置和管理数据操作权限 2数据库的完整性实验。使用Transact-SQL设计规则、缺省、约束和触发器。三、 实验要求1数据的完整性实验用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC): 学生情况表(

2、XSQK)列名数据类型长度是否允许为空值学号Char6N姓名Char8N性别Bit1N出生日期smalldatetime2专业名Char10所在系Char10联系电话char11Y课程表(KC)列名数据类型长度是否允许为空值课程号Char3N课程名Char20N教师Char10开课学期Tinyint1学时Tinyint1学分Tinyint1N成绩表(XS_KC)列名数据类型长度是否允许为空值学号Char6N课程号成绩CharSmallint32N数据的实体完整性实验 用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健用TSQL语句将成绩表(XS_KC)的学号

3、、课程号字段设置为主健数据的参照完整性实验用SSMS为成绩表(XS_KC)创建外键FK_ XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号用TSQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号数据的用户定义完整性实验 用TSQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女用TSQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0100)之间用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值

4、为60用TSQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机020102方露露01981-1-15计算机应用计算机020103俞奇军11980-2-20信息管理计算机020104胡国强11980-11-7信息管理计算机020105薛冰11980-7-29水利工程水利系020201秦盈飞01981-3-10电子商务经济系020202董含静01980-9-25电子商务经济系020203陈伟11980-8-7电子商务经济系

5、020204陈新江11980-7-20房建水利系学生情况表(XSQK):课程表(KC):课程号课程名教师开课学期学时学分101计算机原理陈红2453102计算方法王颐3453103操作系统徐格2604104数据库原理及应用应对刚3755105网络基础吴江江4453106高等数学孙中文1906107英语陈刚1906108VB程序设计赵红韦3705成绩表(XS_KC):学号课程号成绩3. 理解默认值的概念和作用用语句创建名为Xi_default,值为 “计算机系”的默认值将默认值Xi_default绑定到学生表中的所在系的属性列上 解除学生表所在系的属性列上的默认值 删除默认值Xi_default

6、注:创建默认值的格式:create default默认值名as 默认值默认值绑定的格式:sp_bindefault默认值名, 解除默认值绑定格式:sp_unbindefault删除默认值格式:Drop default 默认值名4.理解规则的概念和作用用语句创建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6 将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,C语言,李方,8,64,4) 不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范

7、围内若不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_kkxq注:创建规则的格式:create rule规则名as 列名约束条件规则绑定的格式:sp_bindrule规则名, 解除规则绑定格式:sp_unbindrule 删除规则格式:Drop rule 规则名5.数据的安全性实验:(1)设置身份验证模式 写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。服务器-右键属性-选择安全性,即可查看当前SQLServer系统的服务器验证模式将系统设置为Windows身

8、份验证模式,重启SQL Server,使之生效并验证将系统设置为混合身份验证模式,重启SQL Server,使之生效并验证创建和管理登录账户 1)用对象资源管理器创建、查看、删除SQL Server登录账户分别创建两个登录帐户LoginA、LoginA1,其登录密码分别为:123456、456,并指定LoginA登录默认的数据库为学生成绩数据库(XSCJ),指定LoginA1登录默认的数据库为master数据库。查看登录账户LoginA、LoginA1删除登录账户LoginA12)用T-SQL语句创建、查看、删除SQL Server登录账户用系统存储过程,分别创建两个登陆帐户LoginB、Lo

9、ginB1,其登录密码分别为:666、888,登录后然后所连接到的数据库均为学生成绩数据库(XSCJ)。注:创建新的SQL Server登录账号和登录密码的语句为: sp_addlogin loginame = login /登录的名称 , passwd = password /登录密码。 , defdb = database /登录的默认数据库(登录后登录所连接到的 数据库)。默认设置为 master。 例:创建一个登陆帐户Login,登录密码为:A,登录后然后所连接到的数据库 为master数据库。 sp_addlogin Login,A,master 或 sp_addlogin logi

10、name =Login, passwd =A, defdb =master使用系统存储过程sp_helplogins查看SQL Server登录账户注:查看登录账户的格式: exec sp_helplogins使用系统存储过程sp_droplogin从SQL Server中将登录账户LoginB1删除注:删除登录账户的格式:sp_droplogin loginame = 登录名称 创建和管理数据库用户1)用对象资源管理器创建、查看、删除数据库用户 在学生成绩数据库(XSCJ)中创建数据库用户UserA,使其所对应的帐号为LoginA 能否再创建一个数据库用户ABC,使其对应登录的帐号为Logi

11、nA,若不能写出其原因? 不能,同一个数据库的数据库用户只能有一个登录账户2)用语句创建、查看、删除数据库用户 用系统存储过程sp_grantdbaccess 在学生成绩数据库(XSCJ)中创建一个数据库用户UserB,使其所对应的登录帐号为LoginB注:为SQL Server登录在当前数据库中添加一个安全用户的语句为:sp_grantdbaccess loginame = login /当前数据库中的登录账号 ,name_in_db = name_in_db /数据库中帐户的用户名 用系统存储过程sp_helpuser查看数据库用户 注:查看数据库用户的格式: sp_helpuser na

12、me_in_db = security_account 用系统存储过程sp_ revokedbaccess删除数据库用户ABC1 注:删除数据库用户的格式:sp_ revokedbaccess name_in_db = name 创建和管理角色1)服务器角色的管理 用对象资源管理器将登录帐户LoginA加到sysadmin的角色中。 用系统存储过程sp_addsrvrolemember将登录帐户LoginB加到sysadmin的角色中。注:为登录账户指定服务器角色的系统存储过程sp_addsrvrolemember的格式为: sp_addsrvrolemember 登录账号,服务器角色名称 用

13、系统存储过程sp_dropsrvrolemember删除登录账户LoginA的服务器角色sysadmin注:删除登录账户的服务器角色的系统存储过程sp_dropsrvrolemember的格式为:sp_dropsrvrolemember 登录账号,服务器角色名称2)数据库角色的管理用对象资源管理器将数据库用户UserA添加到db_owner数据库的角色中用系统存储过程sp_addrolemember将数据库用户UserB添加到db_owner数据库角色中。注:为数据库用户指定数据库角色的系统存储过程sp_addrolemember的格式为: sp_addrolemember rolenamer

14、ole,/当前数据库角色的名称 membername = security_account /*添加到角色的安全帐户。security_account 可以是所有有效的 SQL Server 用户、SQL Server 角色或是所有已授权访问当前数据库的 Microsoft Windows NT 用户或组。*/用系统存储过程sp_droprolemember删除数据库用户UserB的db_owner数据库角色 注:删除数据库用户的数据库角色的系统存储过程sp_droprolemember的格式为:sp_droprolemember 数据库角色名称 ,数据库用户账户3)用户自定义角色的管理 在学

15、生成绩数据库(XSCJ)中创建一个角色RoleB 注:在当前数据库创建新的角色: sp_addrole rolename = role / 新角色的名称 , ownername = owner /*新角色的所有者,owner默认值为 dbo。owner 必须是当前数据库中的某个用户或角色*/ 将用户UserB加入到自定义的RoleB这个角色中 注:将数据库户添加到自定义数据库角色的格式为: sp_addrolemember rolenamerole,/当前数据库角色的名称 membername = security_account /*添加到角色的安全帐户。security_account 可

16、以是所有有效的 SQL Server 用户、SQL Server 角色或是所有已授权访问当前数据库的 Microsoft Windows NT 用户或组。*/ 将学生成绩数据库(XSCJ)中学生表的Select权限授予RoleB用帐户LoginB身份登陆,并学生成绩数据库(XSCJ)中执行Create Table Test (aa varchar(10)Select * from 学生情况表Select * from 成绩表并查看以上各语句能否正常执行,为什么?如何才能使不能执行的语句执行?如果用帐号LoginA登陆,上面的语句能否执行。不行,因为UserB没有CreateTable权限GRA

17、NTCREATETABLETOUserB可以从角色RoleB中去除用户UserB从学生成绩数据库(XSCJ)中删除用户UserB从学生成绩数据库(XSCJ)中删除角色RoleB从SQL Server中删除登陆帐户LoginB注:在删除登录帐号之前,应先将登录帐号所对应的用户帐号全部删除,不然将无法删除登录帐号。权限的授予与回收1)权限的授予 把查询XSQK表的权限授予用户UserA 把对KC表全部操作权限授予用户UserA把对XS_KC表的查询权限授予所有用户 把删除XSQK表和修改学生学号的权限授予用户UserA 把插入XSQK表的权限授予用户UserA,并允许将此权限再授予其它用户 把在学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论