实验七 数据库安全性实验

  • 格式:doc
  • 大小:46.50 KB
  • 文档页数:7

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七数据库安全性实验

一、实验目的

学习数据库安全性设置,掌握授权语句。

二、实验环境

硬件:PC机

软件:SQL Server 2000

三、实验原理

1.SQL Server安全管理

在Microsoft SQL Server中工作时,用户要经过两个安全性阶段:身份验证和授权(权限验证)。

⑴身份验证模式

验证用户连接到SQL Server实例的权限。

Microsoft SQL Server可以在两种安全(身份验证)模式之一下工作:

●Windows身份验证模式

Windows身份验证模式使用户得以通过Microsoft Windows NT或Windows 2000用户帐户进行连接。SQL Server通过回叫Windows NT或Windows 2000以获得信息,验证帐户名和密码。

●混合模式(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.权限管理

用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限。

管理权限包括授予或废除执行以下活动的用户权限:

●处理数据和执行过程(对象权限)

●创建数据库或数据库中的项目(语句权限)

●利用授予预定义角色的权限(暗示性权限)

⑴授予权限

语法:

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| UPDA TE [ ,...n ] }

{

[ ( 列名[ ,...n ] ) ] ON { 表名| 视图名}

| ON {表名| 视图名} [ (列名[ ,...n ] ) ]