SQL Server应用与开发范例宝典
上QQ阅读APP看书,第一时间看更新

第2章SQL Server数据库安全性管理

2.1 SQL Server的身份验证模式

为了保证安全性,每个网络用户在访问SQL Server数据库之前,都必须经过身份验证和权限验证。本节实例介绍SQL Server的Windows验证模式和混合验证模式。

实例052 Windows验证模式

这是一个可以提高基础技能的实例

实例说明

本实例介绍如何设置Windows验证模式。

技术要点

在该验证模式下,SQL Server检测当前使用的Windows用户账号,并在Syslogins表中查找该账号,以确定该账号是否有权登录,在这种方式下,用户不必提供密码或者登录名让SQL Server验证。

Windows验证模式主要有以下优点。

● 数据库管理员的工作集中在管理数据库方面,而不是管理用户账户。对用户账户的管理可以交给Windows操作系统去完成。

● Windows NT/2000/XP有着更强的用户账户管理工具。可以设置账户锁定、密码期限等。如果不是通过定制来扩展SQL Server,SQL Server是不具备这些功能的。

● Windows NT/2000/XP的组策略支持多个用户同时被授权访问SQL Server。

但是,应该注意的是,要在客户和服务器间建立连接,使用该验证模式时,必须满足以下两个条件中的一个。

客户端的用户必须有合法的服务器上的Windows NT/2000账户,服务器能够在自己的域中或者信任域中验证该用户。

服务器启动了Guest账户。但该方法会带来安全上的隐患,因而不是一个好方法。

实现过程

下面介绍如何在SQL Server中修改Windows验证模式。具体操作步骤如下。

(1)打开企业管理器,展开“服务器组”文件夹,右键单击“数据库服务器”,这里选择MRGCY,在弹出的快捷菜单中选择“编辑SQL Server注册属性”命令,打开“已注册的SQL Server属性”对话框,如图2.1所示。

图2.1 “已注册的SQL Server属性”对话框

(2)在该对话框中选择“使用Windows身份验证”单选按钮,单击“确定”按钮,即可完成Windows验证模式的设置。

举一反三

根据本实例,读者可以:

设置Windows身份验证模式的安全性。

实例053 混合验证模式

这是一个可以提高基础技能的实例

实例说明

本实例介绍如何设置混合验证模式。

技术要点

混合验证模式允许以SQL Server验证模式或者Windows验证模式来进行验证。使用哪种模式取决于在最初通信时使用的网络库。如果一个用户用TCP/IP的Sockets进行登录验证,则将使用SQL Server验证模式,如果用户用命名管道,则登录时将使用Windows验证模式。但是对于Windows 9x系列的操作系统,只能使用SQL Server验证模式。

在SQL Server验证模式下,处理登录的过程为用户在输入登录名和密码后,在系统注册表中检测输入的登录名和密码。如果输入的登录名存在,且密码也正确,就可以登录到SQL Server上。

混合验证模式具有以下优点。

● 创建了Windows操作系统之上的另外一个安全层次。

● 支持更大范围的用户,如非Windows NT客户、Novell网用户等。

● 一个应用程序可以使用单个的SQL Server登录账号和口令。

由此可以看出,验证模式的选择通常与网络验证的模型和客户与服务器间的通信协议有关。如果网络主要是Windows NT/2000网,那么用户登录到Windows NT/2000时就能进行确认,所以使用Windows验证模式可减轻系统的工作负担。但是,如果网络主要是Novell网或者对等网,则那么使用SPX协议和SQL Server验证模式将更方便一些。因为只需创建SQL Server登录账户,而不用创建Windows NT/2000账户。

实现过程

下面介绍在SQL Server中修改混合验证模式的方法。具体操作步骤如下。

(1)打开企业管理器,展开“服务器组”文件夹,右键单击“数据库服务器”,这里选择MRGCY,在弹出的快捷菜单中选择“编辑SQL Server注册属性”命令,打开“已注册的SQL Server属性”对话框,如图2.2所示。

图2.2 “已注册的SQL Server属性”对话框

(2)在该对话框中选择“使用SQL Server身份验证”单选按钮,在“登录名”文本框中输入登录名,这里为sa;在“密码”文本框中输入密码,这里为空。设置完成后单击“确定”按钮即可完成混合验证模式。

根据本实例,读者可以实现以下操作。

指派sa密码。

设置混合模式的安全性。