1、学号: 201211041110 姓名:杨凯 班级: 信息 12-3 成绩: 上机练习一、 实验目的1掌握 SQL Server 安全控制的两种模式2学会管理 SQL Server 登录账号、数据库用户、各种权限3学会使用角色管理用户及权限二、实验环境安装 SQL Server 2005 的 PC 机一台。三、 实验内容1用 SSMS 工具建立 SQL Server 身份验证模式的登录名:log1、log2 和 log3。Log2 、log3 建立如同上图2利用 10 章建立的“students 数据库” ,用 log1 建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中
2、“students 数据库”?为什么?可以看到。因为所用的数据库服务器名称是一样的,所以该数据库服务器上的数据库就可以看到,但是没有访问权限。3 将 log1、log2 和 log3 映射为“students 数据库”中的用户,用户名同登录名。Log2 、log3 建立如同上图4再次用 log1 建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表中是否能看到并选中“students 数据库”?为什么?答:可以看到,因为给其设置了访问权限。5用 log1 用户在“students 数据库”中执行下述语句,能否成功?为什么?SELECT * FROM Course答:不能成功。因为 LOG1
3、 没有对课程6授予 log1 具有对 Course 表的查询权限,授予 log2 具有对 Course 表的插入权限。答:对 log2 设置插入权限时只需将 Insert 权限的授予选中即可。7在 SSMS 中,用 log2 建立一个新的数据库引擎查询,执行下述语句(根据自建数据库修改表名、列数等) ,能否成功?为什么?INSERT INTO 课程表 VALUES(C001,数据库基础,4,5)答:可以,因为给予其插入权限,所以可以插入新内容。再执行下述语句,能否成功?为什么?SELECT * FROM 课程表答:不能成功。因为 log2 没有查询权限。8在 SSMS 中,在 log1 建立的
4、数据库引擎查询中,再次执行语句:SELECT * FROM 课程表答:可以成功。因为授予 log1 查询权限了。这次能否成功?但如果执行下列语句:INSERT INTO 课程表 VALUES(C003,软件工程,4)能否成功?为什么?答:不能成功。因为 log1 没有查询权限。9授予 log3 在“students 数据库”中具有建表权限。10 在“students 数据库”中建立用户定义的角色 SelectRole,并授予该角色对教师表、课程表和授课表具有查询权。11 新建立一个 SQL Server 身份验证模式的登录名:pub_user,并让该登录名成为“students 数据库”中的合
5、法用户。答:该操作和 LOG1 的操作相同,先建立 SQL Server 身份验证模式的登录名:pub_user,然后设置“students 数据库”为其默认数据库。12 在 SSMS 中,用 pub_user 建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?SELECT * FROM 课程表答:不能,因为 pub_user 没有查询权限。13 将 pub_user 用户添加到 SelectRole 角色中。14 在 pub_user 建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?SELECT * FROM 课程表 答:可以。因为 SelectRole 角色对教师表、课程表和授课表具有查询权,将pub_user 添加在 SelectRole 角色中,pub_user 就有了查询权,就可以查询了。四、实验心得通过这次实验,掌握了数据库 SQl 安全管理的方法,对于如何管理数据库有了新的认识。