资源描述
实验四数据的完整性、安全性一、实验目的1 .掌握数据安全性和完整性的概念,以及如何保证数据库中数据安全及完整性。2 .掌握SQL Server中有关用户、角色及操作权限的管理方法.3 .学会创建和使用规则、缺省。二、实验内容1数据库的安全性实验,通过 SSMS设置SQL Server的安全认证模式.实现对 SQLServer的用户和角色管理,设置和管理数据操作权限.2数据库的完整性实验。使用Transact-SQL设计规则、缺省、约束和触发器。三、实验要求1 .数据的完整性实验用SQL语句创建一学生成绩数据库(XSCJ),包括学生(XSQK)、课程(KC)和成绩表(XS_KC):学生情况表(XSQK )列名数据类型长度是否允许为空值学号Char6N姓名Char8N性别Bit1N出生日期smalldatetime2专业名Char10所在系Char10联系电话char11Y课程表(KC)列名数据类型长度是否允许为空值课程号Char3N课程名Char20N教师Char10开课学期Tinyint1学时Tinyint1学分Tinyint1N成绩表(XS_KC )列名数据类型长度是否允许为空值学号Char6N二用二口 口课/| 土 P成绩CharSmallint32N*J fv! K* tel 山一3T - .数据的实体完整性实验精品资料用SSMS分别将学生情况表XSQK)的学号字段、课程表(KC)的课程号字段设置姓名 性刖 出生日期 专11名 所在系联系电话物据类少允许Null值ar(6) diar8) txt51nMdate time diar(10) ar(ll char(lZ)列名数据类型允曹Nil值课程号thar(3)课程名char(20)o敕师char(io)0开课学期Wint回学时trwint回学分tinyintKurw j- hutw.fv,hj j一j 2yL用T SQL语句将成绩表(XS_KC )的学号、课程号字段设置为主健数据的参照完整性实验用SSMS为成绩表(XSKC )创建外键FK XSQK ID ,外键FK XSQK ID 参照学生情况表(XSQK )表的学号参照课程用TSQL语句成绩表(XS_KC )创建外键 FK_ KC_ID ,外键FK_ KC _ID表(KC)表的课程号数据的用户定义完整性实验 用TSQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束用SSMS为学生情况表(XSQK)的性别列创建一个检查约束,使得性别的值为男或女用T SQL语句为成绩表(XS_KC )的成绩列创建一个检查约束,使得成绩的值在(0用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60,坦 id A .4 dM.用TSQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为 22.将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147020102力露露01981-1-15计算机应用计算机88297147020103俞奇军11980-2-20信息管理计算机88297151020104胡国强11980-11-7信息管理计算机88297151020105薛冰11980-7-29水利工程水利系88297152020201秦盈飞01981-3-10电子商务经济系88297161020202董含静01980-9-25电子商务经济系88297062020203陈伟11980-8-7电子商务经济系88297171020204陈新江11980-7-20房建水利系88297171生 情 况 表 lscK)课程表(KC):*田壬口口 球杠勺课程名教师开课学期学时学分101计算机原理陈红2453102计算方法王颐3453103操作系统徐格2604104数据库原理及应用应对刚3755nv: Hdii n*Ti-i AhzjUm hOk cfu bhm三W*网络基础.,吴江江4 .3.453-看*nqi Ji X hU - .wi Y UDw* . baarf.106,l-a 一 MU f J dUX h 3*-4LUU.1W町1.1*1hiJ+RHiaiB- *t -m-r高尊数学;:;孙中文1V-UHA1hq出TH刊M.解除默认值绑定格式:sp_unbindefault表名.列名I自定义数据类型名称 删除默认值格式:Drop default默认值名4 .理解规则的概念和作用用语句创建规则,:ule_kkxq ,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、门将“rule_kkxq ”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109/C 语言,李方,8,64,4)不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内若不解除规则,能否将规则 rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_ kkxqH- 1 *: w :jt . . i -注:创建规则的格式:create rule 规则名 as列名约束条件规则绑定的格式:sp_bindrule 规则名,表名.列名I自定义数据类型名称解除规则绑定格式:sp_unbindrule表名.列名I自定义数据类型名称 删除规则格式:Drop rule规则名5 .数据的安全性实验:(1)设置身份验证模式写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采Server系统的服务器验证模式用Windows身份验证还是混合身份验证模式。服务器,右键属性- 选择安全性,即可查看当前 SQL将系统设置为 Windows身份验证模式,重启 SQL Server ,使之生效并验证将系统设置为混合身份验证模式,重启 SQL Server ,使之生效并验证创建和管理登录账户1)用对象资源管理器创建、查看、删除 SQL Server登录账户分别创建两个登录帐户LoginA、LoginAI ,其登录密码分别为:123456、456,并指定LoginA登录默认的数据库为学生成绩数据库(XSCJ)数据库。,指定LoginA1登录默认的数据库为 master查看登录账户 LoginA、LoginA1精品资料删除登录账户LoginAI2)用T-SQL语句创建、查看、删除 SQL Server登录账户用系统存储过程,分别创建两个登陆帐户LoginB、LoginBI ,其登录密码分别为:666、888 ,登录后然后所连接到的数据库均为学生成绩数据库(XSCJ)。注:创建新的SQL Server登录账号和登录密码的语句为: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工史二二三野二L* * M S-:!L4L!L工 ;F -注:查看登录账户的格式:使用系统存储过程sp_helplogins查看SQL Server登录账户exec sp_helplogins使用系统存储过程sp_droplogin从SQL Server中将登录账户 LoginBI删除注:删除登录账户的格式: sp_droplogin loginame =登录名称创建和管理数据库用户1)用对象资源管理器创建、查看、删除数据库用户LoginA在学生成绩数据库(XSCJ)中创建数据库用户 UserA ,使其所对应的帐号为,name_in_db = name_in_dbj fifcj JH.- J.z aEr-能否再创建一个数据库用户ABC ,使其对应登录的帐号为 LoginA ,若不能写出其原因?不能,同一个数据库的数据库用户只能有一个登录账户2)用语句创建、查看、删除数据库用户用系统存储过程 sp_grantdbaccess在学生成绩数据库(XSCJ)中创建一个数据库用户UserB ,使其所对应的登录帐号为LoginB注:为SQL Server登录在当前数据库中添加一个安全用户的语句为:sp_grantdbaccess loginame = login当前数据库中的登录账号数据库中帐户的用户名用系统存储过程 sp_helpuser查看数据库用户注:查看数据库用户的格式:sp_helpuser name_in_db = security_account用系统存储过程 sp_ revokedbaccess删除数据库用户 ABC1sp_ revokedbaccess name_in_db = name注:删除数据库用户的格式精品资料创建和管理角色1)服务器角色的管理用对象资源管理器将登录帐户LoginA加到sysadmin的角色中。用系统存储过程 sp_addsrvrolemember将登录帐户 LoginB力口到sysadmin 的角色中。注:为登录账户指定服务器角色的系统存储过程sp_addsrvrolemember的格式为:sp_add srvrolemember 登录账号,服务器角色名称sysadmin用系统存储过程 sp_dropsrvrolemember 删除登录账户 LoginA的服务器角色注:删除登录账户的服务器角色的系统存储过程sp_dropsrvrolemember 的格式为:sp dropsrvrolemember 登录账号,服务器角色名称2)数据库角色的管理用对象资源管理器将数据库用户UserA添加到db_owner数据库的角色中用系统存储过程 sp_addrolemember 将数据库用户 UserB添加到db_owner数据库角色 中。注:为数据库用户指定数据库角色的系统存储过程sp_addrolemember的格式为:sp_addrolemember rolename = role,当前数据库角色的名称membername = security_account /*添力口至U角色的安全帐户。security_account可以是所有有效的SQL Server用户、SQL Server角色或是所有已授权访问当前数据库的Microsoft Windows NT ?用户或组。*/用系统存储过程 sp_droprolemember 删除数据库用户 UserB的db_owner数据库角色注:删除数据库用户的数据库角色的系统存储过程sp_droprolemember的格式为:sp_droprolemember 数据库角色名称,数据库用户账户3)用户自定义角色的管理在学生成绩数据库(XSCJ)中创建一个角色RoleB注:在当前数据库创建新的角色:sp_addrole rolename = role/ 新角色的名称,ownername = owner /*新角色的所有者,owner默认值为dbo。owner必须是当前数据库中的某个用户或角色*/IH Hr: iHEfTi将学生成绩数据库(XSCJ)中学生表的Select权限授予RoleB用帐户LoginB身份登陆,并学生成绩数据库(XSCJ)中执行将用户UserB加入到自定义的 RoleB这个角色中注:将数据库户添加到自定义数据库角色的格式为:sp_addrolemember rolename = role,当前数据库角色的名称membername = security_account /*添加到角色的安全帐户。security_account可以是所有有效的SQL Server用户、SQL Server角色或是所有已授权访问当前数据库的Microsoft Windows NT ?用户或组。Create Table Test (aa varchar(10)Select * from学生情况表Select * from 成绩表并查看以上各语句能否正常执行,为什么?如何才能使不能执行的语句执行?如果用帐号LoginA登陆,上面的语句能否执行。不行,因为UserB没有Create Table权限GRANT CREATE TABLE TO UserB可以 从角色RoleB中去除用户UserB从学生成绩数据库(XSCJ)中删除用户UserB从学生成绩数据库(XSCJ)中删除角色RoleB从SQL Server中删除登陆帐户 LoginB不然将无法删除登注:在删除登录帐号之前,应先将登录帐号所对应的用户帐号全部删除,录帐号。权限的授予与回收1)权限的授予UserA把对KC表全部操作权限授予用户UserA把对XS_KC表的查询权限授予所有用户把删除XSQK表和修改学生学号的权限授予用户UserA把插入XSQK表的权限授予用户 UserA ,并允许将此权限再授予其它用户 -=;/. -*把在学生成绩数据库(XSCJ)中建立表的权限授予用户UserAMb -H- h*-. rim Lb i2)权限的回收撤销用户UserA对XSQK表的插入权限四、实训思考题1 . 一个用户要访问数据库须要经过哪几个安全认证阶段?2 .简述登录账户和用户账户间区别与联系3 .用户、角色和权限的职能,以及它们之间的关系4 .服务器角色有哪些,并分别简述其功能?用户可以创建服务器角色吗?5 .数据库角色有哪些,并分别简述其功能?用户可以创建数据库角色吗?6、什么是数据库的安全性,可以通过哪些措施来保证数据库的安全性?Welcome ToDownload !欢迎您的下载,资料仅供参考!
展开阅读全文