实验5-数据库的安全性控制(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五数据库的安全性控制
一、实验目的:
1. 通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录的认证以及管理办法;
2. 通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权限管理,熟悉SQL Server中角色管理;
3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。
二、实验容
1.设置SQL Server的混合安全认证模式。在SQL Server中的对象资源管理器中设置安全认证模式。
2.在SQL Server中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T数据库。
3.在SQL Server中,利用代码创建一个名为“U2”的登录用户,密码为111;
其相应的数据库用户名为lucky,并允许其登录S-T数据库。
4.用“u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。
分析:没有对u1进行其他操作的授权,只能登录而不能进行插入,修改等操作
5.将students表的操作权限select和insert赋予数据库用户u1,并允许其向其它用户授权。
6.以“u1”用户名登录,执行对students和teacher表的查询操作,将该运行结果进行分析。
分析:对比第4题,对U1进行授权后可以进行相应的操作
7.执行下列代码后,分析用户u2能否对s_t数据库的student表进行select 和update操作,为什么?并用相应的语句验证。
分析:首先grant给public组赋予了查询,插入,更新权限,然后给lucky用户赋予了对S表的所有权限,然后又revoke收回了lucky的权限,但并没有收回public组的权限,而deny却收回了lucky的更新权限,故查询可实现,而更新不可实现
8.以sa登录数据库,在s_t数据库的stc表上创建选修了课程B001的视图st_view。将该视图上的select和列score上的update权限授予u1;
9.以U1登录,对学号为“0415123”成绩提高10分,并查看修改后的结果。
10.撤销u2账号。
11.创建角色r1,并向r1角色授予teacher表的所有权限提示: USE ‘数据库名’
Create role 角色名
12.将U1添加到r1角色中,在u1用户登录窗口,查询teacher表;然后将该用户从r1角色中删除,再以u1用户的身份查询teacher表;观察并分析结果。
提示:(1)将用户添加到角色中
sp_addrolemember 角色1 ,用户名
(2)从角色中删除用户
sp_droprolemember 角色1,用户名
分析:r1角色被赋予了权限,并加到u1用户
分析:ri角色被删除之后,u1用户中就没有角色有对T表的查询权限了。