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

上传人:xin****828 文档编号:6693833 上传时间:2020-03-02 格式:DOC 页数:30 大小:2.82MB
返回 下载 相关 举报
数据库原理-实验3-数据库的安全性.doc_第1页
第1页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第2页
第2页 / 共30页
数据库原理-实验3-数据库的安全性.doc_第3页
第3页 / 共30页
点击查看更多>>
资源描述
一、 实验目的1. 掌握Windows 认证模式下数据库用户帐号的建立与取消方法;2. 掌握混合模式下数据库用户帐号的建立与取消方法;3. 掌握数据库用户权限的设置方法;4. 熟悉数据库数据库用户帐号的权限分配、回收等方法;5. 了解数据库角色的分类、作用及使用方法。二、 实验环境SQL Server 企业版三、实验学时2学时三、 实验原理:1. Microsoft SQL Server 可以在两种安全(身份验证)模式: (1)Windows 身份验证模式(Windows 身份验证) Windows 身份验证模式使用户得以通过 Microsoft Windows NT 4.0 或 Windows 2000 用户帐户进行连接。(2)混合模式(Windows 身份验证和 SQL Server 身份验证) 混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与 SQL Server 实例连接。在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户帐户连接的用户可以使用信任连接。2. SQLerver的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。用户安全对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。(3)架构级别所包含的安全对象主要有表、视图、函数、存储过程、类型、同义词、聚合函数等。架构的作用简单地说是将数据库中的所有对象分成不同的集合,这些集合没有交集,每一个集合就称为一个架构。数据库中的每一个用户都会有自己的默认架构。这个默认架构可以在创建数据库用户时由创建者设定,若不设定则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色所决定。一个数据库使用者,想要登录服务器上的SQL Server数据库,并对数据库中的表执行数据更新操作,则该使用者必须经过如下图所示的安全验证。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_procedure | 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 ( column ,.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服务器,登录名分别为zhang和cheng;(对象资源管理器安全性登录名单击右键“新建登录名”然后如下图: 单击确定)(在登录名下面就会出现新的用户登录名zhang和cheng,重新启动SQL Server Management Studio,就可以使用“SQL Server身份验证”方式使用登录名和密码,成功连接SQL Server Management Studio。)2. 新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3,登录密码为secret,默认登录数据库为stu;(和第一题相同的做法,只不过在新建登录名时将默认数据库设置为stu,然后设置用户映射为“Stu”数据库。)3. 将帐号zhang添加为数据库stu的用户,用户名为zhang;(右键单击账号“zhang”属性用户映射设置如下图)4. 在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3;(同步骤三)5. 给数据库用户zhang赋予创建数据库的权限;(数据库stu安全性右键单击数据库用户“zhang”属性安全对象单击“添加”特定类型的所有对象确定-数据库确定。 在权限设置中在“Create database”后面的授予中打勾,确定。)6. 给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;(对象资源管理器数据库“Stu”安全性用户stu1属性安全对象添加特定类型的所有对象确定表确定。 选择表sc,在权限设置中在“Delete、Insert、Update”后面的授予中打勾确定。)7. 给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;(对象资源管理器数据库“Stu”安全性用户stu2属性安全对象添加特定类型的所有对象确定表确定。 选择表student,在权限设置中所有的授予和具有授予权限中打勾;表course执行相同的操作;对于表sc,在去权限设置Select的授予和授予权限中打勾;确定。)对于用户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) 对于student、course表只能进行数据查询;2) 只能对student表中sname进行更改;3) 对于sc表只能进行修改、删除或插入;(先将登录名中的账号“cheng”的用户映射设置为数据库stu,然后执行 对象资源管理器数据库stu安全性角色数据库角色新建数据库角色角色名称为“NEW”,所有者为“dbo”角色成员添加浏览选择五个数据库用户确定确定。)数据库角色“NEW”属性安全对象添加特定类型的所有对象确定表确定。 对于表student和表course在权限设置中在“Selete”后面的授予中打勾; 对于表sc在权限设置中在“Delete、Insert、Update”后面的授予中打勾; 同时在表student权限设置中在“Update”后面的授予中打勾,然后点击“列权限”,在列Sname后面的授予中打勾,确定。10. 将登录帐号cheng同时拥有服务器角色serveradmin 和 securityadmin的权限;登录名cheng属性服务器角色选择服务器角色serveradmin 和 securityadmin确定。11. 删除服务器角色sysadmin的成员stu2和stu3;安全性服务器角色sysadmin属性选择角色成员stu2单击删除按钮选择角色成员stu3单击删除按钮确定。六、样例模板一.用户的创建(用户包括操作系统用户、服务器用户和数据库用户)1. 创建操作系统用户u1、u2以管理员的身份登录到Windows,打开“控制面板”(Win7)中的“用户账户”,创建操作系统用户u1、u2。2. 创建数据服务器用户GUI方式(SQL Server2008为例):以DBA的身份登录到SQL Server Management Studio,在对象资源管理器中选择“安全性”,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单选项,在“新建登录名”窗口中单击“搜索”按钮添加Windows用户u1,选择“Windows身份验证模式”,单击“确定”按钮完成。(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_end_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.owner”,在弹出的快捷菜单中选择“属性”菜单项,进入“数据库角色属性”窗口,单击“添加”按钮。2. 命令方式:使用系统的存储过程use stu_endgosp_addrolemember db_owner,stu_end_login01此时,可以访问数据库的数据库对象,如下图:select * from s update 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
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!