如何加强 SQL Server 2000 本地数据库的网络连接安全性

文章编号 : 814130
最后修改 : 2006年2月20日
修订 : 9.0

概要
   有些 SQL Server 2000 Personal Edition 实例和 SQL Server 2000 Desktop Engine(也称为 MSDE 2000)实例可能会作为本地数据存储运行,仅由运行在同一计算机上的应用程序使用。如果从未向这些 MSDE 2000 实例进行过网络连接,则这些实例不需要网络支持,此时关闭那些不需要的资源是一个明智的选择。

如果使用的是 SQL Server 2005

有关 SQL Server 2000 的概念和讨论同样适用于 SQL Server 2005 和 SQL Server Express。有关 SQL Server 2005 中此对象的更多信息,请参见 SQL Server 2005 联机丛书中的以下主题:• 如何配置客户端协议(SQL Server 配置管理器)
• 配置服务器网络协议和网络库
• 默认的 SQL Server 网络配置



更多信息
每一个 SQL Server 2000 实例或 MSDE 2000 实例都可以配置为侦听一组特定的网络协议和地址。如果某一实例不需要网络连接,则关闭不用的网络支持可减少该实例的安全依赖性。您可以通过将该实例配置为不侦听任何网络协议来做到这一点。一般来说,您只应对作为本地数据存储运行的 SQL Server 2000 版本进行这样的配置:
• SQL Server 2000 Personal Edition

- 或 -
• SQL Server 2000 Desktop Engine (MSDE 2000)

将一个 SQL Server 实例配置为不侦听网络协议后,同一计算机上的所有应用程序都将使用共享的内存网络库与之进行通信。

关闭网络协议支持并不意味着网络协议具有固有的不安全性。任何时候某一程序访问一项外部资源时,该程序都要获取有关此外部资源安全性的依赖项,即使此外部资源非常安全也是如此。通过关闭不使用的资源,该程序就可以减少其安全依赖项。

注意:对该实例的所有管理都必须在它所运行的计算机上完成。

当 SQL Server 2000 SP3a 或 MSDE 2000 SP3a 的实例被配置为不侦听任何网络协议时,它们将停止在 UDP 端口 1434 上的侦听。SQL Server 2000 或 MSDE 2000 的早期版本不管配置如何,总是要侦听 UDP 1434。有关更多信息,请参见 SP3a 的 Readme.htm 文件,在下面的 Microsoft 网站上可看到此文件:

SQL Server version 2000 Service Pack 3a Readme.htm ( [url]http://support.microsoft.com/default.aspx?scid=/support/servicepacks/sql/2000/sp3readme.asp[/url])

如果该实例在“Windows 身份验证”模式下运行,则此计算机上的 Windows 帐户之一必须是 SQL Server sysadmin 固定服务器角色的一个成员。如果该实例以混合模式运行,管理员可以使用 sa 帐户或 SQL Server sysadmin 固定服务器角色中的一个 Windows 帐户进行登录。

要使用“SQL Server 2000 服务器网络”实用工具将一个现有的 SQL Server 2000 或 MSDE 2000 实例配置为不侦听网络连接,请按照下列步骤操作:
1. 如果在计算机上安装了 SQL Server 客户端工具,请打开 Microsoft SQL Server 程序组,然后启动“服务器网络”实用工具。如果未安装 SQL Server 客户端实用工具,请运行 SQL Server Tools\Binn 文件夹中的 Svrnetcn.exe 文件。通常情况下,不在计算机上安装 SQL Server 客户端实用工具的原因是:该计算机只运行 MSDE 2000 实例,而这些实例不向用户提供使用 SQL Server 客户端实用工具的许可。

有关 SQL Server 2000 文件的文件夹结构方面的更多信息,请访问下面的 Microsoft 网站:

File Locations for Multiple Instances of SQL Server ( [url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/instsql/in_runsetup_7nqr.asp?frame=true[/url])
2. 在“常规”选项卡上,选择“此计算机上的实例”列表框中的 SQL Server 实例的名称。单击默认实例的“服务器名”以将其选中,或为任何指定的实例选择“服务器名/实例名”。  
3. 要将 SQL Server 的实例限制为只允许本地连接,请单击“禁用”,直到“启用的协议”列表中不再列出任何协议。如果您需要在以后更改此设置以允许远程连接,请逆向执行此过程并启用一个或多个协议。
4. 单击“确定”。
5. 重新启动 SQL Server 实例,以使所做更改生效。  
对于一个当前配置为不支持网络连接的 SQL Server 2000 实例,您可以使用“SQL Server 2000 服务器网络”实用工具来启用到它的网络连接。


回到顶端

DISABLENETWORKPROTOCOLS 开关
SQL Server 2000 Desktop Engine (MSDE 2000) Service Pack 3 安装程序引入了一个新的 DISABLENETWORKPROTOCOLS 开关,您可以用它来安装一个新的未启用任何网络连接的 MSDE 2000 实例。

对于 SP3,此开关的行为是:如果未指定 DISABLENETWORKPROTOCOLS,该实例将安装为启用网络协议连接。如果您指定 DISABLENETWORKPROTOCOLS=1,将不为该实例启用任何网络协议。

在 SP3a 中,对 DISABLENETWORKPROTOCOLS 的行为有两处更改: • 安装 SP3a 的新实例时的默认行为是禁用网络协议支持,从而使该实例在默认情况下更加安全。
• 当升级现有 MSDE 2000 实例时,您可以指定关闭网络协议支持。
下表描述了此行为:


MSDE 2000 SP3a 的全新安装。


当前设置 用户指定的网络协议设置 网络协议结果
无 禁用 禁用
无 启用 启用
无 没有用户指定的设置 禁用


升级到 MSDE 2000 SP3a


当前设置 用户指定的网络协议设置 网络协议结果
禁用 禁用 禁用
禁用 启用 启用
禁用 没有用户指定的设置 禁用
启用 启用 启用
启用 禁用 禁用
启用 没有用户指定的设置 启用



注意:在您使用 “/?” 开关运行 MSDE 2000 setup.exe 以列出其支持的开关时,/DISABLENETWORKPROTOCOLS 开关不会列出。

有关 DISABLENETWORKPROTOCOLS 的更多信息,请参见下面 Microsoft 网站中提供的 SQL Server 2000 Service Pack 3a Readme 文件。

SQL Server version 2000 Service Pack 3a Readme.htm ( [url]http://support.microsoft.com/default.aspx?scid=/support/servicepacks/sql/2000/sp3readme.asp[/url])