2011-2012学年第二学期课程实验报告
课程名称: 数据库系统原理
实验名称:数据库控制(一):数据安全性
姓名 实验台编号 实验课表现 实验目的 1. 掌握SQL SERVER身份认证的两种方法 2. 学会用户登录帐号的建立和管理 3. 掌握各种固定服务器角色的权限及其成员的添加与删除 4. 掌握数据库用户、数据库角色的组织与权限的管理 5. 学会Grant、Revoke和Deny语句的使用 实验内容(实验步骤和实验结果的简单描述,方便同学自己以后阅读) --1. 创建一SQL SERVER认证模式的登录帐号L1,并使其成为“dbcreator”服务器角色的成员。请问,L1具 --有什么权限? --用sa登录,创建权限。 create Login L1 with password='123' sp_addsrvrolemember 'L1','dbcreator' --断开数据库,用L1登陆 可登陆,可创建其自身数据库。无法访问原数据库stu1001030028 --2. 在STUxxxx中创建一数据库用户U1,使其映射登陆帐号L1,并使该用户成为STUxxxx数据库“db_owner” --角色的成员。用L1登录服务器,对STUxxxx数据库进行访问,此时L1能对数据库进行什么操作?为什么? --sa上执行查询,使其成为“db_owner”角色的成员。 create user U1 for Login L1 sp_addsrvrolemember 'db_owner','U1' --登陆L1 select * from xs L1可对数据库stu1001030028进行查询,因为访问权授权给L1了. --3. 创建一SQL SERVER认证模式的登录帐号L2,并使其成为“dbcreator”服务器角色的成员。在STUxxxx中 --创建一数据库用户U2,使其映射登陆帐号L2。通过U1授予U2对STUxxxx数据库中XS、KC和XS_KC表的SELECT权 第1页 / 共4页 - 操作结果得分25% 出勤、表现得分25% 班级 同组同学 25 25 - 实验报告 得分50% 学号 实验总分 --限。然后,用L2登录服务器,对STUxxxx(学生管理)数据库进行访问,此时你能对数据库进行什么操作?为 --什么? --在sa上执行查询,使其成为“dbcreator”服务器角色的成员 create login L2 with password='123' sp_addsrvrolemember 'L2','dbcreator' --使用L1登录,授予U2对stu1001030028数据库中XS、KC和XS_KC表的SELECT权限: create user U2 from login L2 grant select on xs to U2 grant select on kc to U2 grant select on xs_kc to U2 --使用L2帐号登录 select * from kc select * from xs select * from xs_kc 可以对数据库中的表进行查询,因为U1拥有对数据库的访问权,并且把查询权授予给了U2 --4. 用L1登陆服务器,创建一数据库角色R1,并使用Grant语句授予其对STUxxxx(学生管理)中XS、KC和 --XS_KC表的修改、删除、插入的权限,然后通过L1将R1的权限授予U2。然后用L2登陆服务器,请问L2对STUxxxx --(学生管理)能进行什么操作?为什么? --使用L1帐号登录: create role R1 grant delete,insert,update on xs to R1 grant delete,insert,update on kc to R1 grant delete,insert,update on xs_kc to R1 sp_addrolemember 'R1','U2' --使用L2帐号登录: insert into xs values('4402131','张三丰',1,'1962-12-23',40,null,'计算机') update kc set 学分=5 where 课程号='101' delete from xs_kc where 成绩='80' --L2用户可以对数据库的表进行修改,删除,更新操作。 --因为L1将对数据库的插入,更新,删除等权利授予角色R1,又将R1所有权力授予L2创建的用户U2,所以通过L2登陆后,用户U2拥有对数据库查询,插入,更新,删除的权利。 --5. 用L1登陆服务器,使用Deny语句拒绝R1对XS_KC表的修改、删除、插入的权限。然后用L2登陆服务器, --请问L2对STUxxxx(学生管理)能进行什么操作?为什么? --使用L1登录: deny insert,update,delete ON xs_kc TO U2 --使用L2登录,拒绝了对对象'XS_KC'删除、修改和插入的权限。 第2页 / 共4页 update xs_kc set 学号='4102103' where 成绩='78' select * from xs_kc delete from xs_kc where 成绩='78' select * from xs_kc insert into xs_kc values('4402130','101',78) select * from xs_kc --没有权限对对象'xs_kc'进行删除,修改,插入数据。 select * from xs_kc --可以成功执行。 --因为L1拒绝U2用户对数据库的更新,插入,删除的权限,所以U2没有权利对数据库更新,插入,删除。 --6. 用L1登陆服务器,使用Revoke 语句回收U2对XS、KC和XS_KC表的SELECT权限。然后用L2登陆服务器, --请问L2对STUxxxx(学生管理)能进行什么操作?为什么? --使用L1登录 revoke select on xs to U2 revoke select on kc to U2 revoke select on xs_kc to U2 --使用L2登录 select * from xs_kc --拒绝了对对象'XS_KC' (数据库'stu0801010049',架构'dbo')的SELECT 权限。 select * from kc --拒绝了对对象'KC' (数据库'stu0801010049',架构'dbo')的SELECT 权限。 select * from xs --拒绝了对对象'XS' (数据库'stu0801010049',架构'dbo')的SELECT 权限。 --不可查询数据库的数据 --因为L1撤消用户U2对表xs,kc,xs_kc的select权限. 实验过程中遇到的问题以及如何解决的?(可以写多条,是否认真填写将影响实验成绩) 本次实验的体会(可以写多条,是否认真填写将影响实验成绩) 第3页 / 共4页
思考题 教师评价 实验态度 A. 很认真 B. 认真 C. 比较认真 D. 不认真 独立完成情况 A. 很好 B. 好 C. 比较好 D. 不好 收获和体会 A. 多 B. 比较多 C. 少 D. 很少 思考题回答情况 A. 很好 B. 好 C. 比较好 D. 不好 评阅教师:陈红顺 日 期: 第4页 / 共4页
因篇幅问题不能全部显示,请点此查看更多更全内容