当前位置:文档之家› 数据库实验三 安全管理

数据库实验三 安全管理

实验三安全管理
一、实验目的
1.掌握SQL Server安全控制的两种模式
2.学会管理SQL Server登录账号、数据库用户、各种权限3.学会使用角色管理用户及权限
二、实验内容
1.用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2和log3。

Log2 、log3建立如同上图
2.利用实验一建立的“教师授课管理数据库”,用log1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中“教师授课管理数据库”?为什么?
可以看到。

因为所用的数据库服务器名称是一样的,所以该数据库服务器上的数据库就可以看到,但是没有访问权限。

3.将log1、log2和log3映射为“教师授课管理数据库”中的用户,用户名同登录名。

Log2 、log3建立如同上图
4.再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表中是否能看到并选中“教师授课管理数据库”?为什么?答:可以看到,因为给其设置了访问权限。

5.用log1用户在“教师授课管理数据库”中执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能成功。

因为LOG1没有对课程
6.授予log1具有对课程表的查询权限,授予log2具有对课程表的插入权限。

答:
对log2设置插入权限时只需将Insert权限的授予选中即可。

7.在SSMS中,用log2建立一个新的数据库引擎查询,执行下述语句(根据自建数据库修改表名、列数等),能否成功?为什么?
INSERT INTO 课程表VALUES(‘C001’,’数据库基
础’,4)
答:可以,因为给予其插入权限,所以可以插入新内容。

再执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能成功。

因为log2没有查询权限。

8.在SSMS中,在log1建立的数据库引擎查询中,再次执行语句:
SELECT * FROM 课程表
答:可以成功。

因为授予log1查询权限了。

这次能否成功?但如果执行下列语句:
INSERT INTO 课程表VALUES(‘C003’,’软件工程’,4)
能否成功?为什么?
答:不能成功。

因为log1没有查询权限。

9.授予log3在“教师授课管理数据库”中具有建表权限。

10.在“教师授课管理数据库”中建立用户定义的角色SelectRole,并授予该角色对教师表、课程表和授课表具有
查询权。

11.新建立一个SQL Server身份验证模式的登录名:pub_user,并让该登录名成为“教师授课管理数据库”中的合法用户。

答:该操作和LOG1的操作相同,先建立SQL Server身份验证模式的登录名:pub_user,然后设置“教师授课管理数据库”为其默认数据库。

12.在SSMS中,用pub_user建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:不能,因为pub_user没有查询权限。

13.将pub_user用户添加到SelectRole角色中。

14.在pub_user建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?
SELECT * FROM 课程表
答:可以。

因为SelectRole角色对教师表、课程表和授课表具有查询权,将pub_user添加在SelectRole角色中,
pub_user就有了查询权,就可以查询了。

相关主题