实验七 数据库安全性实验
- 格式:doc
- 大小:46.50 KB
- 文档页数:7
实验七数据库安全性实验
一、实验目的
学习数据库安全性设置,掌握授权语句。
二、实验环境
硬件: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 ] ) ]