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