第八章 SQL Server的安全性
要点:
SQL Server 2000两级权限管理机制 登陆帐户和服务器角色 数据库用户和数据库角色 权限的管理
第一节 SQL Server 2000安全性概述
作为一种数据库管理系统,SQL Server2000系统中存储了用户大量的业务数据,这些数据都是用户的商业机密。这些商业数据必须得到安全保障。安全性管理是数据库管理系统的一个重要组成部分。安全性就是确保只有授权的用户才能使用数据库中的数据和执行相应的操作,安全性管理包括两个方面的内容,一是用户能否登录系统和如何登录的管理,二是用户能否使用数据库中的对象和执行相应操作的管理。SQL Server2000提供了一套完整的安全机制。 一、认证进程和认证模式
认证进程就是指当用户访问数据库系统时,系统对该用户帐号和口令的确认过程,认证的内容包括确认用户的帐号是否有效、是否能访问系统、能访问系统中的哪些数据等。认证模式就是指系统选择何种认证进程确认用户的方式。
用户必须使用一个登录帐号,才能连接到SQL Server系统中。SQL Server系统通过两种认证进程来确认用户的身份,这两种认证进程是:
(1) WINDOWS认证进程 (2) SQL Server认证进程
当SQL Server在WINDOWS环境中运行时,系统管理员必须指定系统的认证模式类型。认证模式类型有两种:
(1) WINDOWS认证模式 (2) 混合模式
WINDOWS认证模式只允许使用WINDOWS认证进程。这时,用户不能指SQL Server的登录帐号。混合认证模式既允许使用WINDOWS认证进程,又允许使用SQL Server认证进程。在混合认证模式中,当某个用户希望登录SQL Server系统时,系统是采用WINDOWS认证进程还是采用SQL Server
认证进程取决于该用户连接到系统的网络协议类型。
注意:在SQL Server系统中,除了网络协议Named pipes和TCP/IP,其他的网络通信协议都是非信任连接协议。 举例说明:
首先在SQL Server中建立一个登录帐户:选中服务器下的“安全性”-》“登录”,右单击选择“新建登录”,在弹出的菜单常规选项卡中输入“帐号”例如:hello,选择SQL Server身份验证,输入密码:123456,在“服务器角色”卡中选择相应的服务器角色,例如选择:security administrators和databases creators,在“数据库访问”卡中选择允许该帐号访问的数据库名,例如选择:studentborrow数据库。单击确定,这样登录帐号:hello就建立完成了。
此时,我们在服务器名右单击选择“编辑SQL Server注册属性”,在弹出的对话框中选择使用SQL Server身份验证,这时在登录名处输入新建立的帐号:hello,选择总是提示输入用户名和密码,输入密码:123456,单击“确定”,然后重新打开SQL Server,此时提示我们输入用户名和密码,并且只能创建数据库和只能访问studentborrow数据库。
如果我们在服务器上右单击选择属性,在“安全性”卡片上可以选择认证模式,如果选择“仅WINDOWS认证”,那么在重复刚才的操作,就不能够进入了,因为此时仅仅WINDOWS帐号才可以访问SQL Server。 二、帐号验证
SQL Server的安全性机制可以划分为4个等级: (1) 客户机操作系统的安全性 (2) SQL Server的登录安全性 (3) 数据库的使用安全性 (4) 数据库对象的使用安全性
因而使用数据库的帐户也应从四个方面进行验证 1、操作系统级别的验证 2、服务器级别的验证
SQL Server服务器级别安全性建立在控制服务器登录帐户和密码的基础上
也就是前面所说的两种认证模式:WINDOWS认证模式和混合模式。 3、数据库级别的验证
在默认情况下,数据库的所有者可以访问该数据库的对象,还可以分配访问权给别的用户,以便让别的用户也拥有针对该数据库的访问权利。 4、数据库对象级别的验证
默认情况下,只有数据库的所有者可以在该数据库下进行操作。当一个非数据库所有者想访问数据库里的对象时,必须事先由数据库的所有者赋予该用户对指定对象的执行特定操作的权限。
第二节 登录帐号管理
一、标准的SQL帐户管理 1、帐户的建立
方式有三种:使用查询分析器,通过系统提供的存储过程;通过SQL Server企业管理器;使用SQL Server提供的创建登录向导 存储过程:sp_addlogin建立标准登录帐户 语法:sp_addlogin [@loginame=]’ligin’
[,[@passwd=]’psaaword’] [,[@=defab]’database’] [,[@eflanguage=]’language’] 2、修改和删除帐户
使用系统存储过程sp_defaultdb修改登录帐户的默认数据库 使用系统存储过程sp_defaultlanguage修改登录帐户的默认语言 使用系统存储过程sp_password修改登录帐户的密码
使用系统存储过程sp_droplogin来删除SQL Server标准登录帐户 3、注意:
(1)在SQL Server中删除帐户信息时,有如下限制: ? 已经映射到数据库用户的帐户不允许被删除
? 系统帐户SA不能被删除,正在使用的帐户不能被删除 ? 拥有数据库的帐户不能被删除
(2)在进行修改和删除操作时用到的所有存储过程和使用企业管理器进行的有