网络数据库的安全性十分重要,本章将讨论SQL Server 2000安全方面的基本问题。
本章主要内容
& 验证模式
& 账号和角色
& 权限
为了实现安全性,Microsoft SQL Server对用户的访问进行两个阶段的检验。
· 验证阶段:用户在SQL Server上获得任何数据库的访问权限之前,必须登录到SQL Server上。SQL Server或者对用户进行验证,如果验证通过,用户就可以连接到SQL Server上,否则,服务器将拒绝用户登录,从而保证了系统安全。
· 许可确认阶段:用户验证通过后,登录到SQL Server上,系统检查用户是否有访问其中数据的权限。
在验证阶段,系统是对用户登录进行验证。SQL Server和Windows是结合在一起的,因此就产生了两种验证模式,下面将介绍这两种验证模式。
Microsoft SQL Server可在两种身份验证模式之一下工作。
· Windows身份验证模式(仅Windows身份验证):Windows身份验证模式使用户得以通过Windows用户账户进行连接。
· 混合模式(Windows身份验证和SQL Server身份验证):混合模式使用户得以使用Windows身份验证或SQL Server身份验证与SQL Server实例连接。在Windows身份验证模式或混合模式下,通过Windows用户账户连接的用户可以使用信任连接。究竟使用哪一种模式取决于在最初的通信时使用的网络库。如果一个用户使用的是TCP/IP套接字进行登录验证,则将使用SQL Server验证模式,如果使用命名管道,则登录时使用Widnows验证模式。
当用户通过Windows账户进行连接时,SQL Server通过向Windows请求以获得信息,重新验证用户名和密码。
SQL Server通过使用网络用户的安全特性控制登录访问,以实现与Windows的登录安全集成。用户的网络安全特性在网络登录时建立,并通过Windows域控制器进行验证。当网络用户尝试连接时,SQL Server使用基于Windows的功能确定经过验证的网络用户名。登录安全集成在SQL Server中任何受支持的网络协议上运行。
由于Windows用户和组只能由Windows维护,因此当用户进行连接时,SQL Server将读取有关该用户在组中的成员资格信息。如果对已连接用户的可访问权限进行更改,则当用户下次连接到SQL Server实例或登录到Windows时,这些更改会生效。需要注意的是,当SQL Server在Windows 98上运行时,Windows身份验证模式不可用。
与SQL Server身份验证相比,Windows身份验证具有如下优点,与Windows安全系统的集成;提供了安全验证、密码加密、密码过期、最短密码长度、在多次登录请求无效后锁定账户等功能;Windows的组策略支持多个用户同时被授权访问SQL Server。
当用户用指定的登录名称和密码从非信任连接进行连接时,SQL Server通过检查是否已设置SQL Server登录账户,以及指定的密码是否与以前的密码匹配,自动进行身份验证。如果SQL Server未设置登录账户,则身份验证将失败,并给用户发送错误信息。
SQL Server验证模式处理登录的过程为:用户在输入登录名和密码后,SQL Server在系统注册表中检测输入的登录名和密码,如果登录名存在,密码也正确,则可以登录到SQL Server上。
提供SQL Server身份验证是为了向后兼容,为SQL Server 7.0版和更早的版本编写的应用程序可能要求使用SQL Server登录和密码。另外,当SQL Server在Windows 98系统上使用时,只能使用SQL Server身份验证,而不支持Windows身份验证,因此在Windows 98上必须使用混合验证模式。另外,应用程序开发人员和数据库用户因为熟悉登录和密码功能,所以更喜欢选择SQL Server身份验证。
SQL Server提供了两种身份验证模式,即Windows身份验证模式和混合模式。如果选择Windows身份验证模式,则用户只能通过Windows身份验证连接到SQL Server 2000,如果选用混合模式,用户则既可使用Windows身份验证又可使用SQL Server身份验证连接到SQL Server 2000实例。
验证模式一般在SQL Server安装过程中指定,在安装后还可以使用企业管理器进行修改。其操作步骤如下:
(1)运行企业管理器程序,在服务器组中选择要更改的服务器,右击该服务器,选择“属性”命令,弹出SQL Server属性对话框。
(2)单击该对话框中“安全性”标签,激活该选项卡,如图5-1所示。
图5-1 SQL Server安全性属性
(3)在“身份验证”选项组中,可以选择身份验证模式,单击“SQL Server和Windows”单选按钮,可以将身份验证模式设定为混合验证模式,单击“仅Windows”单选按钮,可以将身份验证模式设定为Windows身份验证模式。
(4)在“审核级别”选项组中,可以在以下审核级别中选择一个。
· 无:禁用审核。
· 成功:只审核成功登录尝试。
· 失败:只审核失败登录尝试。
· 全部:表示既审核成功登录尝试又审核失败登录尝试。
(5)单击“确定”按钮,企业管理器将提示关机并重新启动SQL Server服务,可以立即执行该任务,也可以以后再执行,这样就完成了身份验证模式的设置。
另外,还可以通过编辑SQL Server注册属性来设置身份验证模式及SQL Server身份验证的账号和密码。在企业管理器中选择服务器组中的服务器,右击该服务器,在弹出的快捷菜单中选择“编辑SQL Server注册属性”命令,弹出如图5-2所示的“已注册的SQL Server属性”对话框。要使用Windows身份验证模式,单击“使用Windows身份验证”单选按钮。若要使用SQL Server身份验证,单击“使用SQL Server身份验证”单选按钮,并在下方的文本框中输入登录名和密码。若希望在每次登录的过程中再输入登录名和密码,可以单击选中“总是提示输入登录名和密码”复选框。最后单击“确定”按钮保存对验证模式的修改。
图5-2 “已注册的SQL Server属性”对话框