1、实验:授权与回收权限一、实验目的与任务目的:旨在训练学生能使用GRANT、REVOKE及DENY语句来保证数据的安全性。任务:根据需求,写出满足条件的授权及回收权限的语句。任务1:按要求完成以下操作保证数据库安全性要求。(1) 创建登录帐户user1、user2、user3,密码为123456,默认数据库为SchoolInfo。(2) 创建数据库用户user1、user2、user3。(3) 创建角色Role1。(4) 给角色Role1添加成员user1和user2。(5) 授予user3对Department表SELECT权限;授予角色Role1对Department表SELECT和UPDA
2、TE的权限,并允许Role1可将该权限继续授予其他人。(6) 先测试user3是否可以更新Department表,然后以user1帐户登录,将对Department表的SELECT、UPDATE权限授予user3。(7) 以user3身份登录,查看是否可以更新Department表,然后以user1身份废除user3对Department表的SELECT、UPDATE权限。(8) 以user3身份登录,查看是否可以更新Department表,再查看是否可以查询Department表。(可查询不可更新,此时只是废除了user1授予的SELECT权限,sa授予的SELECT权限并未被废除)。重新执
3、行步骤(6),以sa身份使用DENY拒绝该权限并再次查看user3是否具有对Department表的SELECT权限。解决方案:(1) sp_addlogin user1, 123456, SchoolInfosp_addlogin user2, 123456, SchoolInfosp_addlogin user3, 123456, SchoolInfo(2) sp_grantdbaccess user1sp_grantdbaccess user2sp_grantdbaccess user3(3) sp_addrole Role1(4) sp_addrolemember Role1, use
4、r1sp_addrolemember Role1, user2(5) GRANT SELECT ON Department TO user3GRANT SELECT,UPDATE ON Department TO Role1 WITH GRANT OPTION(6) GRANT SELECT,UPDATE ON Department TO user3 AS Role1 -以user1身份登录(7) REVOKE SELECT,UPDATE ON Department FROM user3 AS Role1 -以user1身份登录(8) DENY SELECT ON DEPARTMENT TO
5、user3 -以sa身份登录任务2: 对于SchoolInfo数据库,要求使用DCL语句保证数据的安全性。要求如下:t1,t2,s1,s2分别为数据库用户,其中t1和t2属于角色TeaManager,s1和s2属于角色StuManager,TeaManager可以添加、删除、修改、查询Teacher、Salary和SC表;StuManager可以添加、删除、修改、查询Student、Department及SC表;数据库用户u1可以添加、删除、修改、查询Course及Department表;数据库用户u2可以添加、查询Course及Department表;用户u1可将权限授予其他用户或废除其授予
6、的权限;角色TeaManager可将权限授予其他用户或废除其授予的权限。解决方案:-创建登录帐户sp_addlogin t1, 123456, SchoolInfosp_addlogin t2, 123456, SchoolInfosp_addlogin s1, 123456, SchoolInfosp_addlogin s2, 123456, SchoolInfosp_addlogin u1, 123456, SchoolInfosp_addlogin u2, 123456, SchoolInfo-创建数据库用户sp_grantdbaccess t1sp_grantdbaccess t2sp
7、_grantdbaccess s1sp_grantdbaccess s2sp_grantdbaccess u1sp_grantdbaccess u2-创建角色TeaManager并添加成员sp_addrole TeaManagersp_addrolemember TeaManager, t1sp_addrolemember TeaManager, t2-创建角色StuManager并添加成员sp_addrole StuManagersp_addrolemember StuManager, s1sp_addrolemember StuManager, s2-授予角色TeaManager权限GRA
8、NT SELECT,INSERT,DELETE,UPDATE ON Teacher TO TeaManager WITH GRANT OPTIONGRANT SELECT,INSERT,DELETE,UPDATE ON Salary TO TeaManager WITH GRANT OPTIONGRANT SELECT,INSERT,DELETE,UPDATE ON SC TO TeaManager WITH GRANT OPTION-授予角色StuManager权限GRANT SELECT,INSERT,DELETE,UPDATE ON Student TO StuManagerGRANT
9、SELECT,INSERT,DELETE,UPDATE ON Department TO StuManagerGRANT SELECT,INSERT,DELETE,UPDATE ON SC TO StuManager-授予用户u1权限GRANT SELECT,INSERT,DELETE,UPDATE ON Course TO u1WITH GRANT OPTIONGRANT SELECT,INSERT,DELETE,UPDATE ON Department TO u1WITH GRANT OPTION-授予用户u2权限GRANT SELECT,INSERT ON Course TO u2GRA
10、NT SELECT,INSERT ON Department TO u2任务3:根据任务2,(1)测试StuManager是否能访问Teacher表;(2)t1将Teacher表的SELECT权限授予u1,并以u1登录验证是否对Teacher表有SELECT权限;(3)以sa登录,将Teacher表的SELECT权限授予u1;(4)分别使用REVOKE和DENY测试授予u1的Teacher表上的SELECT权限。解决方案:(1)不能访问(2)u1对Teacher表有SELECT权限(3)u1具有对Teacher表的SELECT权限,分别是sa和t1授予其该权限(4)如果使用REVOKE,则u1
11、仍然有此权限,如果使用DENY,则u1无此权限。三、内容与要求 课题名称授权及回收权限 (一)课题内容 按照任务1至任务2逐步完成,完成后学生可以使用DCL语言保证数据库的安全性。 (二)课题要求按照实验任务书逐步完成实验(三)考核及报告要求 1. 考核能独立完成任一项任务。2. 报告要求提交一份完整的实验报告,实验报告中详细给出每个任务的解决方案,解决方案后附带每个任务的实验结果。四、主要仪器设备硬件:PC机软件:SQL SERVER 20051.创建三个登录用户:sp_addlogin Wang,123456,SchoolInfosp_addlogin Zhang,123456,Schoo
12、lInfosp_addlogin Li,123456,SchoolInfo2. 创建三个数据库用户sp_grantdbaccess Wangsp_grantdbaccess Zhangsp_grantdbaccess Li3. 创建角色sp_addrole newRole4. 将Wang加入角色sp_addrolemember NewRole,Wang5.为角色设置SELECT,UPDATE,INSERT权限,并允许将权限授予他人GRANT SELECT,UPDATE,INSERT ON SC TO NewRole with GRANT OPTION6. 为Li设置SELECT,UPDATE权
13、限;为Zhang设置SELECT权限。GRANT SELECT,UPDATE ON SC TO Li with GRANT OPTIONGRANT SELECT ON SC TO Zhang 7.查看权限情况8.以Wang身份登录:(1)将INSERT,UPDATE权限授予ZhangGRANT INSERT,UPDATE ON sC TO Zhang as newrole19.以Li身份登录:(1)将UPDATE权限授予ZhangGRANT UPDATE ON sC TO Zhang(2)回收Zhang的Update权限revoke update on sc from Zhang10.查看权限情况11.sa身份登录,拒绝Zhang的update权限:deny update on SC to Zhang