201509实验三数据库的安全性_第1页
201509实验三数据库的安全性_第2页
201509实验三数据库的安全性_第3页
201509实验三数据库的安全性_第4页
201509实验三数据库的安全性_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、实验三:数据库的安全性一、实验目的熟悉通过 SQL 对数据进行安全性控制。二、实验平台SQL Server 2008三、实验内容和要求1、掌握 Windows 登录名和 SQL SERVER 登录名的建立与删除方法;2、掌握数据库用户创建与管理的方法;3、掌握服务器角色的用法;4、掌握数据库权限授予、拒绝和撤销的方法;四、实验步骤(一)授权与回收。例 1授权。在 SQL Sever 中建立多个用户,给他们赋予不同的权限,然后查看 是否真正拥有被授予的权限了。1)建立用户 U1、U2、U3、U4、U5、U6、U7。2)以系统管理员身份对这 7 个用户进行授权。 例 1-1把查询 Student

2、表的权限授给用户 U1。GRANT SELECTON StudentTO U1; 例 1-2把对 Student 表和 Course 表的全部操作权限授予用户 U2 和 U3。 GRANTALL PRIVILEGESON StudentTO U2,U3;GRANT ALL PRIVILEGESON CourseTO U2,U3; 例 1-3把对表 SC 的查询权限授予所有用户。GRANT SELECTON SCTO PUBLIC;例 1-4把查询 Student 表和修改学生学号的权限授给用户 U4。GRANT UPDATE (Sno) , SELECTON StudentTO U4;例 1-

3、5把对表 SC 的 INSERT 权限授予 U5,并允许 U5 将此权限再授予其他 用户。GRANT INSERTON SCTO U5WITH GRANT OPTION;例 1-6 用户 U5 将对表 SC 的 INSERT 权限授予 U6,并允许将权限转授给其 他用户。首先应该以 U5 的身份重新登录数据库,然后再进行授权。GRANT INSERTON SCTO U6WITH GRANT OPTION;例 1-7用户 U6 将对表 SC 的 INSERT 权限授予 U7。首先应该以 U6 的身份重新登录数据库,然后再进行授权。GRANT INSERTON SCTO U7;3)在授权之后验证用

4、户是否拥有了相应的权限。 在执行完上面七个语句之后,我们可以分别以不同用户的身份登录数据库, 进行相关操作,检查系统是否许可。例如:例 1-8U4 更新 Student 表的学生学号。UPDATE StudentSET SNO = 95101WHERE SNO =95001;显示更新 1 条记录,即 U4 用户拥有了对 Student 表 Sno 的更新权限。 例 1-9U7 向 SC 表中插入一条数据:( 95020,20,88)。INSERT INTO SC VALU ES(95020 , 20 ,88);显示插入 1 条记录,即用户 U7 拥有了对 SC 表的插入权限。例 2回收权限。将

5、例 1 授予的权限部分收回, 检查回收后,该用户是否真正丧 失了对数据的相应权限。1) 回收权限。例 2-1收回用户 U4 修改学生学号的权限。当前用户为 SYSTEM,直接执行下列语句:REVOKE UPDATE (SNO)ON StudentFROM U4;例 2-2收回所有用户对表 SC 的查询权限。REVOKE SELECTON SCFROM PUBLIC;例 2-3收回用户 U5 对 SC 表的 INSERT 权限。将权限 INSERT 授予给用户 U5 时,允许该用户将权限再授予给其他用 户;之后,用户 U5 将 INSERT 权限转授给了 U6, U6 又将权限转授给 U7。 因

6、此,将用户 U5 的 INSERT 权限收回的时候必须级联收回,不然系统将拒绝 执行该命令:REVOKE INSERTON TABLE SCFROM U5 CASCADE;执行该命令之后, U6 从 U5 处获得的权限也将被收回, U7 从 U6 处获得的权 限也将同时被收回。2) 在回收权限之后验证用户是否真正丧失了该权限。 例 2-4用户 U3 查询表 SC。首先用户 U3 重新登录数据库 TEST。执行命令:SELECT *FROM SC;执行失败,该用户不拥有此权限。证实用户 U3 丧失了对表 SC 查询的权限。例 2-5用户 U6 向表 SC 中插入一条记录 (95035,3,92)

7、。首先用户 U6 重新登录数据库 TEST。执行命令:INSERT INTO SC VALUES( 95035,3,92); 执行失败,该用户不拥有此权限。证实用户 U6 丧失了从用户 U5 处获得的对 表 SC 插入的权限。(二)数据库角色。 例 3角色的创建与授权。 例 3-1创建角色 G1。CREATE ROLE G1;例 3-2 给角色授权, 使得角色 G1 拥有对 Student 表的 SELECT、 UPDATE、 INSERT的权限。GRANT SELETE,UPDATE,INSERTON STUDENTTO G1;例 3-3将用户 U1,U3,U7 添加到角色 G1 中来。EX

8、EC sp_addrolememberG1,u1EXEC sp_addrolememberG1,u2EXEC sp_addrolememberG1,u3将 U1,U3,U7 添加到角色 G1 中之后, U1,U3,U7 就拥有了 G1 拥有的所 有权限,即对 Student 表的 SELECT、UPDATE、INSERT 的权限。例 3-4对角色 G1 的权限进行修改,增加对 Student 表的 DELETE 权限,并 回收对 Student 表的 INSERT 权限。GRANT DELETEON STUDENTTO G1;REVOKE INSERTON STUDENTFROM G1; 例

9、3-5删除角色 G1。DROP ROLE G1;五、实验任务利用实验二建立的 students 数据库和其中的 student、course sc 表,完成下 列操作:1、建立 SQL Server 身份验证模式的登录账户:logl、Iog2 和 Iog3;(命令方式 创建)Zl _j锻年丢冬Fl | J studerrH CJ妾& rMl_PolicyEvtrA *Mi_PolicyTi admin-PCftdrrtin盘loglA Icg2i NT Al/THORmrV-CREATE LOGIN logl WITHPASSWORD =821742GOCREATE LOGIN log

10、2 WITHPASSWORD =821742GOCREATE LOGIN log3 WITHPASSWORD =821742GO2、用 log1 新建一个数据库引擎查询,这时在“可用数据库”下列列表框中是否 能选中 students 数据库?为什么?皿CSCIILOJQ I4CO - k93)B E:Q sWIeftM-J H1t ffl _J B#*TT*皿匚j蠢vd3、将 Iog1、log2 和 log3 映射为 students 数据库中的用户,用户名同登录名; 令方式创建)USE studentsGOCREATE USER log1FOR LOGIN log1USE studentsG

11、OCREATE USER log2FOR LOGIN log2USE studentsGOCREATE USER log3FOR LOGIN log3(命.J students+:J谡库关至哥习_i同文词+ 一j可嗚握性匚 _j Service Broker3 _J荐福J J 去錘曰口月户先dboA 弓 uet卜iINFORMATLON_SCHE忌 loglft 窗% log 3IA学H9I_訓*Qava2310C102療作系筑44台匕冃因为log1 赋予的是查询功能。让 logl 执行下述语句,能否成功?为什么?Insert into course values(c103,软件工程,4,6)

12、SQLQueryS.sql - (L.udents (logl (S3) XInsert into course values f殺件T稈f4f6# IiirrI卜命消息消息裁”删心状艮第亍亍T拒绝了对对象 cciUEse (数is库*stiMiaTrtH,t架构hdbd )的INSKRT权障不能,因为Log1 所在的数据库没有赋予查询权限。9、在 students 数据库中建立用户角色:rolel,并将 logl 和 log2 添加到此角色中。iiA 鲫昵 | 卿4b_Ria4v I ri送蘇嘶翹呀:用户,鱷誦邑輪A品谯樺的对录编翩):【1硝】:ng燧叙)mtft _dfldb!kH.I 理

13、园 5 號库.弔占拋色11、在 logl 建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?Insert into course values(103,软件工程,4,6)SQLQu亡ryl.绡I - (1-udents (logl (52)* |.:Insert into course y己lues (丫匸103 ”软彳牛丁*呈”4石i消息2S27,级别14,1,第丄行违反了PRIMARY KEY约束球_cauise:_DeSfilSaGSlSCCAF*e不能在对象 语句已终止。一 一不能,因为Log1 所在的数据库没有赋予查询权限。12、在 log2 建立的数据库引擎查询中,再次执

14、行下述语句,能否成功?为什么?select * from courseBEi4publicroleliAK4St*莘喷中J闽户MMIW疗Eimwfil 4t_芟.亠丄74*v如OSE 5tudets竝曲直1ma?GOGKANT SELECT ON CDiirae TO rolelGOUSE stQdsntsGOGRANT Insert OH course TO rllGOUSE studentsGOGRANT DELEIE ON ccurse TO rolelGOIIIJ*刊富儒巨3twriH炭tveh轉也)1bH;MiX:i命令已成斯主成xwR rcm H設轴n曲曲祢冏呷D C-SQ DE3

15、E3SHSQLQuciryl.sql - dudnts (leg 2 (52)Jaelacnc壬f roozi二结果.1涓息CNOCNAMECREDIT SEMSTER1owjj412阪*大学萸i吾313COD3丸学英语324COM计茸机交化学22&C005VG336core457C007数拥箱狗448计算机廖44孑Cl DIlava2310Cl 02播作系统斗4111口03软件工腥46不能,因为Log2 所在的数据库没有赋予查询权限。13、用 log3 建立一个数据库引擎查询,并执行下述语句,能否成功?为什么? select* from courseSQLQu( (iyrM|l(lo

16、g3 (52) Xselect * from cqurse1J消息消息级别.状态亦第1行拒细了对对象 course,:数欄圭srudentB1,架构啲SELECT碾阳不能,因为Log3 所在的数据库没有赋予查询权限。14、将 log3 添加到 db_datareade 角色中,并在 log3 建立的数据库引擎查询中再 次执行下述语句,能否成功?为什么?15、在 log3 建立的数据库引擎查询中,执行下述语句,能否成功?为什么?Insert into course values(104;C 语言:3,1)SQLQueiyZsqC (Indents (1og3 f53)* |- XInsert i

17、nto course values (plO1j,3 1消息叫级别第1行I拒绝了对对象ncourse t数据厘1studentsr架枸dbo1)的工HSERT叔怀select * from courseB 逝离!埠,主用戶曲岂:4IM贰架恂-lb_i*eEtfLLywliiLndb_mrdll_bliCk4p9rBt M*dh_ddL*faj&dbtcctsi-kitri曲色质员用户处損屋角邑对录盘凹口輒一穩W CWECilECiT SEN5KH1:O0l窪轴宇41気早般j计簞脱tC 2诟3曲捋巨戛出 4計18删 *计列刚 酔魏IUtfris I10(=3世应叭申| (5,即*l*ef.丄三口CALUIA不能,因为Log3 所在的db_datareader 角色中没有赋予查询权限。16、在 students 数据库中,授予 public 角色具有 course 表的查询和插入权限;EQLQuryLfql -(_IH-PCacimin (Si)11USE stucieiitsGOGRANT

温馨提示

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

评论

0/150

提交评论