实验七-数据库安全性实验_第1页
实验七-数据库安全性实验_第2页
实验七-数据库安全性实验_第3页
实验七-数据库安全性实验_第4页
实验七-数据库安全性实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验七 数据库安全性实验一、实验目的学习数据库安全性设置,掌握授权语句。二、实验环境硬件:PC机软件:SQL Server 2000三、实验原理1. SQL Server安全管理在Microsoft SQL Server中工作时,用户要经过两个安全性阶段:身份验证和授权(权限验证)。身份验证模式验证用户连接到SQL Server实例的权限。Microsoft SQL Server可以在两种安全(身份验证)模式之一下工作: l Windows身份验证模式Windows身份验证模式使用户得以通过Microsoft Windows NT或Windows 2000用户帐户进行连接。SQL Server通过回叫Windows NT或Windows 2000以获得信息,验证帐户名和密码。l 混合模式(Windows身份验证和SQL Server身份验证)混合模式使用户得以使用Windows身份验证或SQL Server身份验证与SQL Server实例连接。在Windows身份验证模式或混合模式下,通过Windows NT或Windows 2000用户帐户连接的用户可以使用信任连接。如果创建单个Windows 2000组并向该组添加所需的所有用户,则需要授予Windows 2000组登录到SQL Server的权限以及对任何必需数据库的访问权限。权限验证当验证了用户的身份并允许其登录到SQL Server实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。每个数据库中的用户帐户都用于为该数据库中的对象(表、视图和存储过程等)应用安全权限。2. 登录账号每个用户必须通过登录账号建立自己的连接能力(身份验证),以获得对SQL Server实例的访问权限。添加Windows登录当授予Windows NT或Windows 2000用户连接到SQL Server实例的权限时,需指定用户所属的Windows NT或Windows 2000域名或计算机名,然后依次输入反斜线和用户名或组。sp_grantlogin loginame = 域用户添加SQL Server登录sp_addlogin loginame = 登录名 , passwd = 密码 , defdb = 登录的默认数据库 , deflanguage = 默认语言 查看登录sp_helplogins LoginNamePattern = 登录名 删除Windows登录sp_revokelogin loginame = 域用户删除SQL Server登录sp_droplogin loginame = 登录名3. 数据库用户授予Windows用户/组或SQL Server登录访问数据库的权限若要获得对SQL Server数据库的访问权限,Windows用户/组或SQL Server登录在需要访问的每个数据库中,必须有相应的用户账号。sp_grantdbaccess loginame = 登录账号 , name_in_db = 数据库用户名注:省略数据库用户名时,则数据库用户名与登录账号名相同。查看数据库用户sp_helpuser name_in_db = 数据库用户名 删除数据库用户sp_revokedbaccess name_in_db = 数据库用户名4. 数据库角色创建数据库角色sp_addrole rolename = 数据库角色名 , ownername = 角色所有者 添加数据库角色成员sp_addrolemember rolename = 角色, membername = 用户名添加固定服务器角色成员sp_addsrvrolemember loginame = 登录名, rolename = 固定服务器角色名删除数据库角色sp_droprole rolename = 数据库角色名删除数据库角色成员sp_droprolemember rolename = 角色, membername = 用户名删除固定服务器角色成员sp_dropsrvrolemember loginame = 登录名, rolename = 固定服务器角色名5. 权限管理用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限。管理权限包括授予或废除执行以下活动的用户权限:l 处理数据和执行过程(对象权限)l 创建数据库或数据库中的项目(语句权限)l 利用授予预定义角色的权限(暗示性权限)授予权限语法:GRANT ALL | CREATE DATABASE| CREATE DEFAULT| CREATE FUNCTION| CREATE PROCEDURE| CREATE RULE| CREATE TABLE| CREATE VIEW| BACKUP DATABASE| BACKUP LOG ,.n TO 安全账号 ,.n 或:GRANT ALL PRIVILEGES | SELECT| INSERT| DELETE| REFENENCES| UPDATE ,.n ( 列名 ,.n ) ON 表名 | 视图名 | ON 表名 | 视图名 (列名 ,.n ) | ON 存储过程 | 用户自定义函数 TO 安全账号 ,.n WITH GRANT OPTION AS 组 | 角色 删除权限REVOKE ALL | CREATE DATABASE| CREATE DEFAULT| CREATE FUNCTION| CREATE PROCEDURE| CREATE RULE| CREATE TABLE| CREATE VIEW| BACKUP DATABASE| BACKUP LOG ,.n FROM 安全账号 ,.n 或:REVOKE ALL PRIVILEGES | SELECT| INSERT| DELETE| REFENENCES| UPDATE ,.n ( 列名 ,.n ) ON 表名 | 视图名 | ON 表名 | 视图名 (列名 ,.n ) | ON 存储过程 | 用户自定义函数 FROM 安全账号 ,.n CASCADE AS 组 | 角色 四、实验内容1. 利用系统存储过程,创建登录账号要求:创建Windows登录账号:基于Windows组成员或用户账号创建登录账号:Workgroup(域名或计算机名)guest05。 参考:sp_grantlogin Workgroupguest05注意:创建Windows登录账号时,需确定在Windows系统中,已存在该用户或组。创建SQL Server登录账号:基于SQL Server创建登录账号guest05,默认数据库pay。参考:EXEC sp_addlogin guest05, 12345, pay2. 利用系统存储过程,进行数据库用户设置要求:基于Windows登录的设置:授权Windows登录账号Workgroupguest05以guest051用户身份访问数据库master。 参考:use mastergosp_grantdbaccess Workgroupguest05, guest051基于SQL Server登录的设置:授予guest05登录账号以guest05用户身份访问数据库master和pay。参考:use mastergosp_grantdbaccess guest05use paygosp_grantdbaccess guest05将guest用户账号添加到数据库pay中。参考:use paygosp_grantdbaccess guest从数据库master中删除guest051用户。参考:use mastergosp_revokedbaccess guest0513. 利用系统存储过程,进行SQL Server角色管理要求:固定服务器角色管理:新建SQL Server登录账号guest06,并将guest06用户添加到数据库创建者角色中。参考:EXEC sp_addlogin guest06, 12345EXEC sp_addsrvrolemember guest06, dbcreator固定数据库角色管理:将guest06用户添加到pay数据库的db_owner角色中。参考:use paygoEXEC sp_grantdbaccess guest06 /*向数据库pay增加登录guest06的映射用户*/EXEC sp_addrolemember db_owner, guest06注意:在数据库pay中需已存在guest06用户用户自定义角色的使用:定义一个新的数据库角色Managers,该角色由DBO用户账号所有,然后将guest05用户添加到Managers角色中。参考:use paygo EXEC sp_addrole Managers, DBOEXEC sp_addrolemember Managers, guest054. 利用T-SQL语句,进行语句和对象授权要求:语句授权:授权用户guest05创建数据库,然后授权角色Managers建表。参考:use mastergoGRANT CREATE DATABASE TO guest05use paygoGRANT CREATE TABLE TO Managers注意:授权创建数据库,只能在master中进行对象授权:授权用户guest05对表person进行插入和更新数据操作,然后授权Managers对表pay进行插入和查询操作。参考:use paygoGRANT INSERT, UPDATE ON person TO guest05GRANT INSERT, SELECT ON pay TO Managers5. 利用系统存储过程,删除角色及登录账号删除角色:从Managers角色中删除用户guest05,然后删除当前数据库中的Managers角色。参考:use paygosp_droprolemember Managers, guest05EXEC sp_droprole Managers删除guest05及Workgroup gue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论