收藏 分享(赏)

数据库原理-实验3-数据库的安全性.doc

上传人:精品资料 文档编号:10618806 上传时间:2019-12-07 格式:DOC 页数:30 大小:2.82MB
下载 相关 举报
数据库原理-实验3-数据库的安全性.doc_第1页
第1页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第2页
第2页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第3页
第3页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第4页
第4页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、一、 实验目的1. 掌握 Windows 认证模式下数据库用户帐号的建立与取消方法;2. 掌握混合模式下数据库用户帐号的建立与取消方法;3. 掌握数据库用户权限的设置方法;4. 熟悉数据库数据库用户帐号的权限分配、回收等方法;5. 了解数据库角色的分类、作用及使用方法。二、 实验环境SQL Server 企业版三、实验学时2 学时三、 实验原理:1. Microsoft SQL Server 可以在两种安全(身份验证)模式: (1)Windows 身份验证模式(Windows 身份验证) Windows 身份验证模式使用户得以通过 Microsoft Windows NT 4.0 或 Wind

2、ows 2000 用户帐户进行连接。(2)混合模式(Windows 身份验证和 SQL Server 身份验证) 混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与 SQL Server 实例连接。在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户帐户连接的用户可以使用信任连接。2. SQLerver 的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 中的登录名主要有两

3、种:第一种是 Windows 登录名,第二种是 SQL Server 登录名。Windows 登录名对应 Windows 验证模式,该验证模式所涉及的账户类型主要有 Windows 本地用户账户、Windows 域用户账户、Windows 组。SQL Server 登录名对应 SQL Server 验证模式,在该验证模式下,能够使用的账户类型主要是 SQL Server 账户。(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL 事件、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录

4、名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。(3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为 dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色所决定。一个数据库使用者,想要登录服务器上的 SQL Server 数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过

5、如下图所示的安全验证。3.数据库的存取控制:授权和撤销权限(1)GRANT在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句语法:1)语句权限:GRANT ALL | statement ,.n TO security_account ,.n 2)对象权限:GRANT ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_proce

6、dure | ON user_defined_function TO security_account ,.n WITH GRANT OPTION AS group | role (2)REVOKE删除以前在当前数据库内的用户上授予或拒绝的权限。语法语句权限:REVOKE ALL | statement ,.n FROM security_account ,.n 对象权限:REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( colum

7、n ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO | FROM security_account ,.n CASCADE AS group | role 五、实验内容及步骤以系统管理员身份登录到 SQL Server 服务器,在 SQL Server2005 界面中实现以下操作,并独立写出 68 题的程序代码;1. 在当前计算机中增加一个用户 zhang 和 cheng,密码为 secret。使此用户通过 winows NT 模式下登录 SQL Server 服务器,登录名分别为zh

8、ang 和 cheng;(对象资源管理器安全性登录名单击右键“新建登录名”然后如下图: 单击确定)(在登录名下面就会出现新的用户登录名 zhang 和 cheng,重新启动 SQL Server Management Studio,就可以使用“SQL Server 身份验证”方式使用登录名和密码,成功连接 SQL Server Management Studio。 )2. 新建以混合模式登录 SQL Server 服务器的用户登录名为 stu1、stu2和 stu3,登录密码为 secret,默认登录数据库为 stu;(和第一题相同的做法,只不过在新建登录名时将默认数据库设置为 stu,然后设

9、置用户映射为“Stu”数据库。 )3. 将帐号 zhang 添加为数据库 stu 的用户,用户名为 zhang;(右键单击账号“zhang”属性用户映射设置如下图)4. 在数据库 stu 中创建用户 stu1、stu2 和 stu3,登录帐号分别为stu1、stu2 和 stu3;(同步骤三)5. 给数据库用户 zhang 赋予创建数据库的权限;(数据库 stu安全性右键单击数据库用户“zhang”属性安全对象单击“添加”特定类型的所有对象确定-数据库确定。 在权限设置中在“Create database”后面的授予中打勾,确定。 )6. 给数据库用户 stu1 赋予对 sc 表进行插入、修改

10、、删除操作权限;(对象资源管理器数据库“Stu”安全性用户 stu1属性安全对象添加特定类型的所有对象确定表确定。 选择表 sc,在权限设置中在“Delete、Insert、Update”后面的授予中打勾确定。 )7. 给数据库用户 stu2 和 stu3 赋予对 student 表、course 表所有操作权限及查询 sc 的操作权限,并允许再授权给其他用户;(对象资源管理器数据库“Stu”安全性用户 stu2属性安全对象添加特定类型的所有对象确定表确定。 选择表 student,在权限设置中所有的授予和具有授予权限中打勾;表 course 执行相同的操作;对于表 sc,在去权限设置 Sel

11、ect 的授予和授予权限中打勾;确定。 )对于用户 stu3 执行与 stu2 相同的操作。8. 收回数据库用户 stu2 对 student 表和 course 表的删除操作的权限;(只要在用户 stu2 的安全对象设置中把 student 表和 course 表的设置权限中的 Delete 中的授予中的对号去掉就可以了。 )revoke delete on student from stu2 cascaderevoke delete on course from stu2 cascade9. 若一个小组共 5 个成员,他们对数据库 stu 具有相同的操作权限,具体权限如下:1) 对于 st

12、udent、course 表只能进行数据查询;2) 只能对 student 表中 sname 进行更改;3) 对于 sc 表只能进行修改、删除或插入;(先将登录名中的账号“cheng”的用户映射设置为数据库 stu,然后执行 对象资源管理器数据库 stu安全性角色数据库角色新建数据库角色角色名称为“NEW” ,所有者为“dbo”角色成员添加浏览选择五个数据库用户确定确定。 )数据库角色“NEW”属性安全对象添加特定类型的所有对象确定表确定。 对于表 student 和表 course 在权限设置中在“Selete”后面的授予中打勾; 对于表 sc 在权限设置中在“Delete、Insert、U

13、pdate”后面的授予中打勾; 同时在表 student 权限设置中在“Update”后面的授予中打勾,然后点击“列权限” ,在列 Sname 后面的授予中打勾,确定。10. 将登录帐号 cheng 同时拥有服务器角色 serveradmin 和 securityadmin 的权限;登录名 cheng属性服务器角色选择服务器角色 serveradmin 和 securityadmin确定。11. 删除服务器角色 sysadmin 的成员 stu2 和 stu3;安全性服务器角色 sysadmin属性选择角色成员 stu2单击删除按钮选择角色成员 stu3单击删除按钮确定。六、样例模板一.用户的

14、创建(用户包括操作系统用户、服务器用户和数据库用户)1. 创建操作系统用户 u1、u2以管理员的身份登录到 Windows,打开“控制面板” (Win7)中的“用户账户” ,创建操作系统用户 u1、u2。2. 创建数据服务器用户GUI 方式(SQL Server2008 为例):以 DBA 的身份登录到 SQL Server Management Studio,在对象资源管理器中选择“安全性” ,右击“登录名” ,在弹出的快捷菜单中选择“新建登录名”菜单选项,在“新建登录名”窗口中单击“搜索”按钮添加 Windows 用户 u1,选择“Windows 身份验证模式” ,单击“确定”按钮完成。(

15、1) 命令方式:use mastercreate login LISHUO-PCu1 from windows(2) 同样的方式将操作系统用户 u2、u3 加入到数据服务器。3. 创建数据库用户以系统管理员身份登录到数据库服务器,分别以 GUI 方式和命令方式创建数据库用户(1) GUI 方式(SQL Server2008 为例):选中 stu_end 数据库,单击“安全性” ,在其“用户”节点下右击,在弹出的快捷菜单中选择“新建用户”菜单项,在“数据库用户”窗口中输入要新建的数据库用户名和登录名,单击“确定”按钮。(2) 命令方式:use stu_endgocreate user stu_e

16、nd_login01 for login LISHUO-PCu1 go(3)查看 stu_end_login01 的属性,此用户除了拥有默认架构外,没有分配相应权限。(3) 切换到操作系统用户 u1,以 u1 的身份登录到 SQL Server Management Studio,这时可以使用命令打开数据库 stu_end。如下图:此时,以 stu_end 数据库用户 stu_end_login01 访问数据库 stuinfo,访问被拒接。一、 数据库角色管理这里只讨论固定数据库角色。1. 以界面方式为固定数据库角色添加成员:在 stu_end 数据库中展开“安全性”角色数据库角色,选择“db

17、.owner”,在弹出的快捷菜单中选择“属性”菜单项,进入“数据库角色属性”窗口,单击“添加”按钮。2. 命令方式:使用系统的存储过程use stu_endgosp_addrolemember db_owner,stu_end_login01此时,可以访问数据库的数据库对象,如下图:select * from supdate s set sage=25 where sname=胡海燕 select * from s 切换到 DBA,取消 stu_end_login01 的所有的角色,此时只能打开数据库,而不能访问数据库对象,如下图:二、 数据库的权限管理1. 以用户 u2 登陆数据服务器,并访问数据库 stu_end2. 以系统管理员的身份登录,为操作系统用户 u2 登录数据库 stu_end 创建登录名 stu_end_login022. 切换到用户 u1,为用户 u2 分配访问权限use stu_endgogrant select,delete on s to stu_end_login024. 切换到用户 u2,可以看到学生表 s 对用户 u2 可见5. 执行访问的权限6. 执行未授权的权限update s set sage=30 where sname=丁蕾go

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报