实验六 SQL SERVER安全管理

【实验目的】

1.了解SQL Server 的认证模式,安全管理的主要内容和方法。

2.掌握用户管理、访问权限管理的基本方法。

【实验环境】

Windows 10系统 + SQL Server 2012

【实验内容】

1.用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2、log3。

2.利用EDUC数据库以及student、course、student_course表,用log1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中EDUC数据库?为什么?

3.将log1、log2和log3映射为EDUC数据库中的用户,用户名同登录名。

4.再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中EDUC数据库?为什么?

5.用log1用户在EDUC数据库中执行下述语句,能否成功?为什么?

select  *  from  course

6.授予log2具有对course表查询权限,授予log3具有对course表的插入权限。

7.在SSMS中,用log3建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?

insert into course(cno,spno,cname) values(‘C02003’, ‘sp02’, ‘软件工程’),再执行下述语句,能否成功?为什么?

select  *  from  course

8.在SSMS中,在log2建立的数据库引擎查询中,再次执行下述语句:

select  *  from  course ,这次能否成功?

但如果执行下述语句:

insert into course values(’c02004’,’sp01’,’计算机图形学’,null,null, null,null,null,null),能否成功?为什么?

9.授予log3在EDUC数据库中具有建表权限。

10.在EDUC数据库中建立用户定义的角色:selectrole,并授予该角色对student、course、student_course表具有查询权。

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

12.在SSMS中,用EDUC建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?

select  *  from  course

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

14.在pub_user 建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?

select  *  from  course

【实验方法和步骤】

1.在开始菜单中选中SQL Server Management Studio图标,启动SSMS。启动后,单击“连接”按钮,进入SSMS窗口。如下图所示:

实验六 SQL SERVER安全管理_第1张图片

  

实验六 SQL SERVER安全管理_第2张图片

  

图1

2.用SSMS工具建立SQL Server身份验证模式的登录名:log1、log2、log3。展开“安全性”结点,右击“登录名”,选择新建登录名。具体操作如下图所示:

实验六 SQL SERVER安全管理_第3张图片

   

实验六 SQL SERVER安全管理_第4张图片

 图2

3.利用EDUC数据库以及student、course、student_course表,用log1建立一个新的数据库引擎查询,在“可用数据库”下拉列表框中是否能看到并选中EDUC数据库?为什么?

       可以看到EDUC数据库,但不可选中。因为log1仅是SQL server合法的登录用户,不是EDUC数据库的合法用户。

实验六 SQL SERVER安全管理_第5张图片

    图3

实验六 SQL SERVER安全管理_第6张图片  图4

4.将log1、log2和log3映射为EDUC数据库中的用户,用户名同登录名。

       依次展开EDUC数据库、安全性结点,右击“用户”,选择“新建用户”。

具体操作图下图所示:

实验六 SQL SERVER安全管理_第7张图片

  图5

5.再次用log1建立一个新的数据库引擎查询,这次在“可用数据库”下拉列表框中是否能看到并选中EDUC数据库?为什么?

       刷新刚连接的服务器节点,可以选中EDUC数据库。因为当前登录名log1已成为EDUC数据库的合法用户。

6.用log1用户在EDUC数据库中执行下述语句,能否成功?为什么?

select  *  from  course

       不能成功,因为log1用户没有被授予查询权限。

结果如下图所示:

  图6

7.授予log2具有对course表的查询权限,授予log3具有对course表的插入权限。

       右击log2属性,依次点击搜索—特定对象—对象类型—表,点击“确定”。然后选择“浏览”,选中course表,单击确定,返回页面后,授予相应的权限,最后点击“确定”即可。

结果如下图所示:

实验六 SQL SERVER安全管理_第8张图片

实验六 SQL SERVER安全管理_第9张图片

  图7

8.在SSMS中,用log3建立一个新的数据库引擎查询,执行下述语句,能否成功?

insert into course(cno,spno,cname) values(‘C02003’, ‘sp02’, ‘软件工程’),再执行下述语句,能否成功?

select  *  from  course

       执行上述插入语句可以成功,因为log3被授予了插入权限。

       执行查询语句不能成功,因为log3没有被授予查询权限。

结果如下图所示:

实验六 SQL SERVER安全管理_第10张图片 图8

实验六 SQL SERVER安全管理_第11张图片

图9

  图10

9.在SSMS中,在log2建立的数据库引擎查询中,再次执行下述语句:

select  *  from  course ,这次能否成功?

但如果执行下述语句:

insert into course values(‘c02004’,’sp01’,’计算机图形学’,null,null, null,null,null,null),能否成功?为什么?

       执行上述查询语句可以成功。

       执行上述插入语句不能成功,因为log2没有被授予插入权限。

结果如下图所示:

实验六 SQL SERVER安全管理_第12张图片

图11

实验六 SQL SERVER安全管理_第13张图片

  图12

10.授予log3在EDUC数据库中具有建表权限。

   右击log3属性,选择“安全对象”,依次点击搜索—特定对象—对象类型—数据库—EDUC—确定,返回页面后,勾选“创建表”,最后点击确定即可。

结果如下图所示:

实验六 SQL SERVER安全管理_第14张图片

  图13

11.在EDUC数据库中建立用户定义的角色:selectrole,并授予该角色对student、course、student_course表具有查询权。

        展开“角色”结点,右击“数据库角色”,选择“新建数据库角色”,输入角色名称selectrole。选择“安全对象”,依次点击搜索—特定对象—对象类型—表—浏览,将studentcoursestudent_course表选中,点击确定。返回页面后,为每张表勾选“选择”,完成后点击确定即可。

具体操作如下图所示:

实验六 SQL SERVER安全管理_第15张图片

  

实验六 SQL SERVER安全管理_第16张图片

  图14

12.新建立一个SQL Server 身份验证模式的登录名:pub_user,并让该登录名成为EDUC数据库中的合法用户。

        上述操作中,已详细阐述如何建立新的登录名并让其成为EDUC数据库合法用户,此处不再赘述。

结果如下图所示:

实验六 SQL SERVER安全管理_第17张图片

  图15

实验六 SQL SERVER安全管理_第18张图片

  

图16

13.在SSMS中,用pub_user 建立一个新的数据库引擎查询,执行下述语句,能否成功?为什么?

select  *  from  course

       不能成功,没有授予数据库用户pub_user查询权限。

结果如下图所示:

  图17

14.将pub_user用户添加selectrole角色中。

        展开“数据库角色”结点,右击selectrole属性,依次点击添加—浏览,选择pub_user点击确定即可。

实验六 SQL SERVER安全管理_第19张图片

  图18

实验六 SQL SERVER安全管理_第20张图片

  图19

15.在pub_user 建立的数据库引擎查询中,再次执行下述语句,能否成功?为什么?

select  *  from  course

       执行上述语句,可以成功。因为pub_user继承了selectrole的权限。

结果如下图所示:

实验六 SQL SERVER安全管理_第21张图片

图20

【实验结果】

       本次实验结果已在【实验方法与步骤】中详细写明,此处不再赘述。

【总结】

①SQL Server身份验证模式:Windows验证、混合验证模式

②角色分类:服务器角色、数据库角色(固定的数据库角色、用户自定义角色)、应用程序角色

③权限种类:对象权限、语句权限、隐含权限

④管理权限:授予权限、收回权限、拒绝权限

你可能感兴趣的:(sql,安全,数据库)