数据库通常包含最为敏感、机密的数据(例如:人力资源部门的个人详细资料、客户详细资料、订单或信用卡详细资料)。必须安全地存储这类数据,并防止其在未经授权的情况下被披露、篡改或恶意使用。即便数据库服务器并未直接与 Internet 相连,仍需防止其遭受利用配置弱点、现有缓冲器溢出或不良开发惯例而实施的攻击。
这些攻击的执行者可以是:
| • | 为利用数据库而使用的不安全的 Web 应用程序。 |
| • | 具有网络访问权限的不道德的管理员。 |
| • | 受骗而运行恶意代码的数据库用户。 |
本模块先介绍了影响数据库服务器运行的一些最常见的威胁,然后基于这种理解来找出防护办法。接下来用实例来说明防护方法,以循序渐进的方式介绍提高数据库服务器安全性的方法。
使用本模块可以实现:
| • | 学习业已证实了的数据库服务器安全保障方法。 |
| • | 了解 SQL Server 的安装内容。 |
| • | 以安全方式安装 SQL Server。 |
| • | 通过以安全方式配置操作系统来锁定数据库服务器。这包括对服务、修补程序和更新程序、协议、帐户、文件和目录、共享、端口、注册表信息及审核的配置。模块中包含 SQL Server 方案的示例。 |
| • | 通过记录身份验证请求及以安全方式管理 SQL Server 的内部安全设置(包括登录、数据库用户、角色及数据库对象权限)来锁定 SQL Server 应用程序。 |
| • | 使用权限最低的帐户运行 SQL Server,仅限管理员使用具有危险性的存储过程。 |
| • | 部署后保持安全状态。 |
| • | 了解可应用哪些对策来解除对数据库服务器的常见威胁,包括 SQL 注入、网络窃听、未经授权的服务器访问及密码破解。 |
本模块适用于下列产品和技术:
| • | Microsoft Windows Server 2000 |
| • | Microsoft .NET Framework 1.1 和 ASP.NET 1.1 |
| • | Microsoft SQL Server 2000 |
为了充分理解本模块内容,请:
| • | 视具体情况对介绍的方法做出相应调整。 | ||||||
| • | 阅读模块 2 威胁与对策。本模块对 Web 应用程序和下游数据库服务器所面临的潜在威胁进行了说明。 | ||||||
| • | 使用快照。本模块后面的安全数据库服务器快照一节列出了安全的数据库服务器所具备的特性。它所反映的是从各种信息来源提炼出的精华,来源中包括客户、行业专家及 Microsoft 的内部开发和支持团队。配置数据库服务器时请以快照表作为参考。 | ||||||
| • | 使用检查表。本指南“检查表”一节中的检查表:保护您的数据库服务器提供了快速参考。使用检查表可以快速评估需要哪些步骤并帮助您逐步完成各个步骤。 | ||||||
| • | 使用“如何”一节。本指南的“如何”一节中包含以下指导性文章,可帮助您按照本模块中的指导进行操作:
|
攻击者可充分利用各种配置和应用程序级漏洞,以多种方式将数据库服务器作为目标来实施危害。
数据库服务器所面临的主要威胁是:
| • | SQL 注入 |
| • | 网络窃听 |
| • | 未经授权的服务器访问 |
| • | 密码破解 |
图 18.1 显示的是一些主要的威胁和漏洞,它们可导致数据库服务器的安全受到威胁并可能使敏感数据被毁或被窃取。

图 18.1
数据库服务器的最大威胁和漏洞
接下来的几节对这些威胁和漏洞做逐一说明。
实施 SQL 注入攻击时,攻击者会充分利用应用程序的输入验证和数据访问代码中的漏洞,使用 Web 应用程序的安全上下文在数据库中随意运行命令。
漏洞
SQL 注入所利用的漏洞包括:
| • | 安全性差的 Web 应用程序输入验证 |
| • | 不安全、以动态方式构建的 SQL 命令 |
| • | 应用程序登录数据库所使用的权限过高 |
| • | 权限脆弱,无法对应用程序登录数据库施加限制 |
对策
要防范 SQL 注入攻击,请:
| • | 应用程序在于 SQL 查询中使用输入数据前,应先对其进行限制和净化处理。 |
| • | 使用类型安全的 SQL 参数进行数据访问。这些参数可与存储过程或以动态方式构建的 SQL 命令字符串连用。使用 SQL 参数可确保对输入数据进行类型和长度检查,同时确保在数据库中将注入的代码作为原意数据,而不是可执行语句来对待。 |
| • | 使用具有限制性数据库访问权限的 SQL Server 登录。理想的做法是:只为数据库中的选定存储过程授予执行权限,不提供直接表访问。 |
有关防范 SQL 注入攻击的应用程序级对策的详细信息,请参阅模块 14 构建安全的数据访问。
大多数应用程序的部署体系结构都包括从数据库服务器中物理分离出数据访问代码。因此,必须防止网络窃听者窃取诸如应用程序特定数据或数据库登录凭据等敏感数据。
漏洞
可加大网络窃听可能性的漏洞包括:
| • | 不安全的通信渠道 | ||||
| • | 例如,以明文方式向数据库传送凭据:
|
对策
要防范网络窃听,请:
| • | 使用 Windows 身份验证连接到数据库服务器,以避免在网络上发送凭据。 |
| • | 在数据库服务器上安装服务器证书。这样做可对在网络上传输的 SQL 凭据进行自动加密。 |
| • | 在 Web 服务器和数据库服务器间使用 SSL 连接,以保护敏感的应用程序数据。这需要数据库服务器证书。 |
| • | 在 Web 和数据库服务器之间使用通过 IPSec 加密的通道。 |
应仅限特定客户端计算机可以直接访问数据库服务器,以防止未经授权的服务器访问。
漏洞
使数据库服务器易遭未经授权的服务器访问的漏洞包括:
| • | 未在外围防火墙封锁 SQL Server 端口 |
| • | 缺少 IPSec 或 TCP/IP 筛选策略 |
攻击
经过身份验证的用户和无用户名及密码的用户都可遭受直接连接攻击。例如:
| • | 使用查询分析器 (Isqlw.exe) 或等效的命令行程序 (Osql.exe) 等工具建立到 SQL Server 的直接连接并发出命令。 |
| • | 如果攻击者向侦听端口发送精心构建的数据包,诸如软件版本等服务器信息便会泄漏。 |
对策
要防范这些攻击,请:
| • | 确保 SQL Server 端口在外围网络以外不可见。 |
| • | 在外围网络内,限制未经授权的主机进行直接访问,例如,通过使用 IPSec 或 TCP/IP 筛选器。 |
常见的第一种攻击方式是尝试破解众所周知的帐户名称,如 sa(SQL Server 管理员帐户)。
漏洞
导致密码破解的常见漏洞为:
| • | 弱密码或空密码 |
| • | 包含日常用语的密码 |
攻击
常见的密码破解攻击包括:
| • | 字典攻击 |
| • | 手动猜测密码 |
对策
要防范这些攻击,请:
| • | 为 SQL Server 登录帐户创建符合复杂性要求的密码。 |
| • | 避免使用包含字典中的常见词的密码。 注意 如果使用 Windows 身份验证,可利用 Windows 的安全策略来强制执行密码复杂性要求。 |
保证 SQL Server 和 Windows 2000 的安全涉及许多配置更改。最好的方法是将必须进行的更改分为具体的配置类别。使用类别可以系统的方式逐步完成实施安全保证的所有步骤,也可只拣选某一类别,执行特定步骤。
已将安全保证方法系统化为图 18.2 中所示的类别。

图 18.2
数据库服务器安全类别
图 18.2 中所示的配置类别基于从现场经验、客户验证及对安全部署的研究得出的最佳做法。这些类别的幕后理论基础如下:
| • | 修补程序和更新程序 |
| • | 服务 |
| • | 协议 |
| • | 帐户 |
| • | 文件和目录 |
| • | 共享 |
| • | 端口 |
| • | 注册表 |
| • | 审核和日志 |
| • | SQL Server 安全性 |
| • | SQL Server 登录、用户及角色 |
| • | SQL Server 数据库对象 |
采取措施保证数据库服务器的安全前,应了解安装 SQL Server 后 Windows 2000 Server 上存在的其他组件。
安装 SQL Server 时,除程序和数据文件外,还会安装多个 Windows 服务。默认情况下,程序及数据文件位于 \Program Files\Microsoft SQL Server\ 目录下。表 18.1 显示了安装时创建的服务和文件夹。
表 18.1:SQL Server 默认安装内容
| 项目 | 详细资料 |
服务 | MSSQLSERVER |
文件夹 | \program files\Microsoft SQL Server\mssql\binn(程序文件) |
如果是从头构建新数据库服务器,开始安装 SQL Server 前便有许多事项需要考虑。此外,自定义安装 SQL Server 是个好的做法,因为这样可以选择最安全的安装选项。
运行 SQL Server 安装程序前,请检查下列各项:
| • | 创建一个具有最低权限的本地帐户,须通过它来运行 SQL Server 服务。安装过程中提示进行服务设置时,请使用此帐户。请不要使用本地系统帐户或管理员帐户。 |
| • | 确保不要在域控制器上安装 SQL Server。 |
| • | 确保在 NTFS 格式的分区上安装 SQL Server。 |
| • | 在非系统卷(操作系统所在卷以外的其他卷)上安装 SQL Server 程序及数据库文件。 |
在生产服务器上安装 SQL Server 时,请选择自定义安装选项。如果执行了该操作,便可有选择性地选择要安装的项目。不应在生产数据库服务器上安装表 18.2 中所列的项目。
表 18.2:自定义安装过程中不安装的项目
| 工具 | 用途 |
升级工具 | 用于升级 SQL Server 6.5 数据库 |
复制支持 | 用于复制的脚本及二进制文件。(如果不需要进行复制,请不要安装。) |
全文搜索 | 全文搜索引擎(Microsoft Search 服务)。如果不需要进行全文搜索,请不要安装。 |
联机丛书 | SQL Server 文档 |
开发工具 | C 开发人员所使用的标头和库文件、Microsoft 数据访问 (MDAC)、XML 软件开发工具包 (SDK) 及用于存储过程调试的接口。 |
代码示例 | 代码示例用于为开发人员提供指导。 |
同样,如果不是非要 SQL Server 身份验证不可,请选择 Windows 身份验证模式。Windows 身份验证有下列优点:
| • | 可利用现有域及本地安全策略强制使用强密码和帐户管理最佳做法。 |
| • | 凭据不在网络上传送。 |
| • | 应用程序数据库连接不要求提供凭据。 |
如果选择“混合模式”,请为 sa 帐户创建一个强密码。Sa 帐户是密码猜测和字典攻击的首选目标。
本节利用在前文中介绍的配置类别,引导您逐步完成保证数据库服务器安全的步骤。这些步骤涵盖 Windows 2000 和 SQL Server 2000,其中的每个步骤均可能包含旨在保证特定区域或功能安全的一项或多项操作。
步骤 1 | 步骤 7 | ||
步骤 2 | 步骤 8 | ||
步骤 3 | 步骤 9 | ||
步骤 4 | 步骤 10 | ||
步骤 5 | 步骤 11 | ||
步骤 6 | 步骤 12 |
不及时安装最新的修补程序和更新程序为攻击者提供了充分利用已知漏洞实施攻击的机会。应确认是否使用最新的 Windows 2000 和 SQL Server Service Pack 及更新程序对数据库服务器进行了更新。
要点确保在生产服务器上安装修补程序和更新程序前,先在尽可能模拟生产服务器环境的测试系统上对它们进行测试。
使用 Microsoft 基准安全分析器 (MBSA) 来检测可能缺少的、必要的 Windows 及 SQL Server 更新程序。MBSA 使用一个 XML 文件作为现有更新程序的参考。可在扫描运行时由 MBSA 下载此 XML 文件;也可在本地服务器或从网络服务器下载该文件。
| • | 检测和安装修补程序和更新程序
|
有关使用 MBSA 的详细信息,请参阅本指南“如何”一节中的如何:使用 Microsoft 基准安全分析器。
有关应用 Service Pack、热修补程序和安全修补程序的详细信息,请参阅应用 Service Pack、修补程序和安全修补程序的最佳做法 。
必须采用不同于为 SQL Server 完整版安装修补程序的方法来为其 Microsoft Desktop Edition (MSDE) 安装修补程序。有关为 MSDE 安装修补程序的详细信息,请参阅本指南“如何”一节中的如何:保证开发人员工作站的安全。
要减少受攻击面并确保不受未发现的服务漏洞的影响,请禁用任何非必需的服务。运行那些仍使用最低权限帐户的服务。
本步骤的任务:
| • | 禁用不使用的 SQL Server 服务。 |
| • | 禁用 Microsoft DTC(如并非必需)。 |
注意 要禁用服务,请使用“计算机管理”工具中的“服务 MMC”管理单元将其启动类型设置为“禁用”。
SQL 服务安装程序运行期间将安装以下四个 Windows 服务:
| • | MSSQLSERVER(对于命名实例,则为 MSSQL$InstanceName)。此为 SQL Server 数据库引擎,是唯一的强制安装服务。 |
| • | SQLSERVERAGENT(对于命名实例,则为 SQLAgent$InstanceName)。可借助此支持服务制定命令执行计划及在出错时通知操作人员。 |
| • | MSSQLServerADHelper。它可提供 Active Directory 集成服务,包括数据库实例注册。 |
| • | Microsoft Search。它可提供全文搜索能力。在任何情况下均须通过本地系统帐户来运行此服务。 |
只有 MSSQLSERVER 数据库引擎是必备的。其余服务提供了附加功能,只在特定情况下才需要使用。如并非必需,请禁用这些服务。
注意 不应将 SQL Server 配置为以本地系统帐户或本地 Administrators 组的任何成员帐户运行。有关配置用于运行 MSSQLSERVER 的服务帐户,请参阅步骤 4:帐户。
如果不通过 Microsoft DTC 使用分布式事务,请禁用该服务。
防止使用不必要的协议可减少受攻击面。配置 SQL Server,使其只支持以 TCP/IP 协议连接的客户端。如果其他协议并非必需,请将它们全部禁用。
本步骤的任务:
| • | 限制 SQL Server 只采用 TCP/IP。 |
| • | 强化 TCP/IP 堆栈。 |
通过强制使用 TCP/IP,可以利用 IPSec 策略或 TCP/IP 筛选来控制谁可以通过特定端口连接到服务器。要支持 IPSec 或 TCP/IP 筛选,SQL Server 应只支持通过 TCP/IP 进行客户端连接。
| • | 配置 SQL Server 网络协议支持
|

图 18.3
禁用“SQL Server 网络实用工具”中除 TCP/IP 外的所有协议
Windows 2000 允许对许多参数进行控制,以配置其 TCP/IP 实现。考虑到服务器可用性和特定功能的需要,对其中一些默认值进行了调整。
有关如何强化 TCP/IP 堆栈的信息,请参阅本指南“如何”一节中的如何:强化 TCP/IP 堆栈。
要进一步提高数据库服务器的安全性,请禁用 NetBIOS 和 SMB。这两种协议均可用于清除主机配置信息,因此应在可能的情况下将它们删除。有关删除 NetBIOS 和 SMB 的详细信息,请参阅模块 16 保护 Web 服务器中的“协议”。
还要考虑使用 IPSec 来限制数据库服务器用来接受传入连接的端口。有关操作方法的详细信息,请参阅本指南“如何”一节中的如何:将 IPSec 用于筛选端口和身份验证。
请为用于运行和连接到 SQL Server 的帐户设置最低权限,以限制设法在数据库服务器上执行 SQL 命令的攻击者的危害能力。同时应用强密码策略来防范字典攻击的威胁。
本步骤的任务:
| • | 保证 SQL Server 服务帐户的安全。 |
| • | 删除或禁用不使用的帐户。 |
| • | 禁用 Windows 来宾帐户。 |
| • | 重命名管理员帐户。 |
| • | 强制执行强密码策略。 |
| • | 限制远程登录。 |
| • | 禁用空会话(匿名登录)。 |
使用最低权限帐户运行 SQL Server 服务可将设法从 SQL Server 执行操作系统命令的攻击者所造成的危害降至最低水平。不应为 SQL Server 服务帐户授予诸如 Administrators 组成员身份等较高特权。
| • | 创建新帐户来运行 SQL Server 服务
|
此时便可对 SQL Server 进行配置,使其通过这一新帐户运行。有关详细信息,请参阅步骤 10:SQL Server 安全机制。
如果出于某些目的(例如,执行网络备份、进行复制或日志传送)需要从 SQL Server 访问网络资源,SQL Server 服务帐户必须能够在网络内通过身份验证。有两种方法可以使用。一种方法是在远程服务器上创建一个具有相同名称和密码的备用本地帐户;另一种是使用最低权限域帐户。
不使用的帐户及其特权可能成为已获得服务器访问的攻击者的庇护所。对服务器上的本地帐户进行审核,删除那些不使用的帐户。建议在删除帐户前先将其禁用,以观察这样做是否会产生任何问题,因为帐户一经删除便无法恢复。请注意:无法删除管理员帐户和来宾帐户。
注意 在 SQL Server 2000 SP3 安装过程中,Sqldbreg2.exe 将创建“调试程序”帐户。Visual Studio .NET 将在调试所管理的 .NET 代码中的存储过程时使用该帐户。由于该帐户的唯一用途就是为调试提供支持,因此可以从生产数据库服务器中将其删除。
Windows 来宾帐户是匿名连接计算机时所使用的帐户。要限制到数据库服务器的匿名连接,请使该帐户保持在禁用状态。默认情况下,Windows 2000 中的来宾帐户已禁用。要查看是否启用了该帐户,请显示“计算机管理”工具中的“用户”文件夹。系统以十字图标来表示它。如果它未被禁用,请显示其“属性”对话框,然后选择“帐户已停用”复选框。
默认的本地管理员帐户因其在计算机上享有的较高特权而成为恶意使用的目标。要提高安全性,请重命名默认的管理员帐户,并为其指定一个强密码。
为防范密码猜测和强力字典攻击,应通过配置安全策略来应用强密码策略。强帐户和强密码的关键所在:
| • | 设置密码长度和复杂性。强制执行强密码降低了密码猜测或字典攻击的成功几率。 |
| • | 设置密码过期。定期使密码失效可降低旧密码被用来进行未经授权访问的几率。有效期的确定通常以公司的安全策略作为指导。 |
表 18.3 显示了默认和建议的密码策略设置。
表 18.3:密码策略的默认和建议设置
| 密码策略 | 默认设置 | 建议的最低设置 |
强制密码历史 | 记忆 1 个密码 | 记忆 24 个密码 |
密码最长期限 | 42 天 | 42 天 |
最短密码期限 | 0 天 | 2 天 |
最短密码长度 | 0 个字符 | 8 个字符 |
密码必须符合复杂性要求 | 禁用 | 启用 |
为域中所有用户均设置使用可逆加密的强密码 | 禁用 | 禁用 |
此外,还应记录失败的登录尝试,以检测和跟踪恶意行为。有关详细信息,请参阅步骤 9:审核和日志。
有关密码策略的详细信息,请参阅 Microsoft TechNet 网站上的“Best Practices”,其网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/windowsserver2003/proddocs/entserver/windows_password_protect.asp(英文)。
使用“本地安全策略”工具从 Everyone 组中删除“从网络访问此计算机”用户权限,以对可远程登录服务器者施加限制。
为了防止匿名访问,请禁用空会话。空会话是未经身份验证或匿名的用户在两台计算机间建立的会话。如果不禁用空会话,攻击者便可匿名(即,不需要进行身份验证)连接到服务器。
攻击者建立空会话后即可开始实施各种攻击,包括用于从目标计算机获取系统相关信息的枚举。可通过空会话返回的信息类型包括:域和信任的详细信息、共享、用户信息(包括组和用户权限)、注册表项及其他。请禁用它们,因为它们代表着重大的安全威胁。
在注册表中的以下位置设置 RestrictAnonymous=1,便可禁止空会话。
HKLM\System\CurrentControlSet\Control\LSA\RestrictAnonymous=1
有关详细信息,请参阅 Microsoft 知识库文章 246261 How to:Use the RestrictAnonymous Registry Value in Windows 2000(英文)。
考虑执行以下步骤来提高数据库服务器的安全性:
| • | 要求帐户委派批准。无特别批准,请不要在 Active Directory 中将域帐户标记为信任委派。 | ||||
| • | 不要使用共享帐户。请不要创建供多人使用的共享帐户。为经授权的个人提供其专用帐户。可对各人的活动分别进行审核,并相应分配组成员身份和特权。 | ||||
| • | 限制本地 Administrators 组成员身份。理想的情况是,管理帐户不超过两个。这有助于提供可说明性。同时,请不要共享密码,这也是为了提供可说明性。 | ||||
| • | 限制管理员帐户进行交互式登录。如果只执行本地管理,则取消“从网络访问此计算机”以拒绝授予网络登录权限,便可限制管理员帐户进行交互式登录。这样做可以防止用户(无论出于善意还是其他动机)利用管理员帐户远程登录到服务器。如果本地管理策略灵活性太差,可实施安全远程管理。 有关远程管理的详细信息,请参阅本模块后文中的远程管理。 | ||||
| • | 启用 NTLMv2 身份验证 如果客户端计算机利用 Windows 身份验证连接到数据库服务器,则应当对数据库服务器进行配置,让其使用安全性最高的 Windows 身份验证版本,即 NTLMv2。 注意 要支持 NTLMV2,客户端必须运行 Windows 2000、Windows Server 2003 或 Windows NT® 4.0 操作系统,并安装 Service Pack 4。 | ||||
| • | 在“本地安全策略工具”中启用 NTLMv2 身份验证
这是最安全的设置。 注意 这与将 |
除利用 ACL 保证操作系统文件的安全外,还要强化 NTFS 权限来限制对 SQL Server 程序文件、数据文件、日志文件以及系统级工具的访问。此外,还应只允许 SQL Server 服务帐户访问其所需的内容。
本步骤的任务:
| • | 验证对 SQL Server 安装目录的权限。 |
| • | 验证 Everyone 组是否不具有对 SQL Server 文件的访问权限。 |
| • | 保证安装日志文件的安全。 |
| • | 保证工具、实用程序及 SDK 的安全或将它们删除。 |
根据表 18.4 中所列的权限对 SQL Server 服务所赖以运行的帐户进行验证。括号中指定的位置为默认安装位置,可能会视安装的具体情况而不同。
表 18.4:SQL Server 服务帐户的 NTFS 访问权限
| 位置 | SQL 服务帐户的权限 |
安装位置 | 读取并执行 |
数据库文件目录(.mdf、.ndf、.ldf 文件) | 完全控制 |
错误日志文件目录 | 完全控制 |
备份文件目录 | 完全控制 |
作业临时文件输出目录 | 完全控制 |
如果使用“企业管理器”来设置 SQL Server 服务帐户,它将为帐户授予对 SQL Server 安装目录及所有子文件夹 (\Program Files\Microsoft SQL Server\MSSQL\*) 的“完全控制”权限。
取消对该文件夹及其所有子文件夹的写入授权,然后有选择性地授予对数据、错误日志、备份及作业文件目录的完全控制权限,便可使新帐户无法覆盖 SQL Server 二进制文件。
不应使 Everyone 组具有对 SQL Server 文件位置(默认情况下为 \Program Files\Microsoft SQL Server\MSSQL)的访问权限,这可通过验证 Everyone 组并未经 ACL 获得访问权限和只为 SQL Service 帐户、Administrators 组及本地系统帐户提供显式完全控制来实现。
安装 SQL Server 2000 Service Pack 1 或 2 后,系统管理员或服务帐户的密码可能会遗留在 SQL 安装目录中。请使用 Killpwd.exe 实用程序从日志文件中删除密码实例。
有关获得和使用此实用程序的信息,请参阅 Microsoft 知识库文章 263968 FIX:Service Pack Installation May Save Standard Security Password in File(英文)。
不应在生产数据库服务器上安装 SDK 和资源工具包。如果安装了,请将它们卸载。此外还需:
| • | 确保禁止对强大的系统工具和实用程序(如 \Program Files 目录中所包含者)的访问。 |
| • | 不应在数据库服务器上留有调试工具。如果有进行生产调试的必要,则应刻录一张包含必要的调试工具的 CD。 |
要进一步提高数据库服务器的安全性:
| • | 卸载服务器上可能安装了的、不使用的应用程序。如果服务器上存在不使用的应用程序,便将它们卸载。 | ||||||||||
| • | 利用加密文件系统 (EFS) 为数据文件加密。可以使用 EFS 来保护数据文件。即便数据文件遭窃,但由于进行了加密处理,增大了读取的难度。系统支持对 SQL Server 数据文件使用 EFS。 使用 EFS 时应注意以下事项:
要实施 EFS,请右键单击目录,单击“高级”,然后单击“加密内容以便保护数据”。有关 EFS 的详细信息,请参阅以下资源:
|
取消所有不使用的共享,并强化对任何必需共享的 NTFS 权限。默认情况下,所有用户对新创建的文件共享均具有完全控制权限。应强化这些默认权限,以确保只有经授权的用户才能访问共享所展露的文件。除了要对共享所展露的文件和文件夹使用显式共享权限外,还应当对它们使用 NTFS ACL。
本步骤的任务:
| • | 取消不必要的共享。 |
| • | 限制对必需共享的访问。 |
取消所有不必要的共享。要查看共享,请启动“计算机管理 MMC”管理单元,然后选择“共享文件夹”下的“共享”。
删除 Everyone 组,改为授予具体的权限。如果对共享访问未加限制,系统便使用 Everyone。
如果不允许对计算机进行远程管理,请取消因此而不使用的管理共享,例如 C$ 和 Admin$。
注意 某些应用程序可能要求有诸如 Microsoft Management Server (SMS) 或 Microsoft Operations Manager (MOM) 等管理共享。有关详细信息,请参阅 Microsoft 知识库文章 318751 How To:Remove Administrative Shares in Windows 2000 or Windows NT 4.0(英文)。
默认情况下,SQL Server 会侦听 TCP 端口 1433,并将 UDP 端口 1434 用于客户端与服务器间的协商。应结合使用防火墙和 IPSec 策略来限制对这些端口的访问,从而将攻击者可兹利用的攻击途径降至最低水平。
本步骤的任务:
| • | 限制对 SQL Server 端口的访问。 |
| • | 配置命名实例来侦听同一端口。 |
| • | 配置防火墙来支持 DTC 通信(如有必要)。 |
利用外围防火墙来防止 Internet 对 SQL Server 端口(默认情况下为 TCP 端口 1433 和 UDP 端口 1434)进行直接访问,但这并不能防止服务器遭受内部攻击。对 IPSec 策略进行配置,以限制被设计为与数据库连接的 Web 或应用程序服务器通过 TCP 端口 1433 和 UDP 端口 1434 进行访问。
有关详细信息,请参阅本指南“如何”一节中的如何:使用 IPSec。
默认情况下,SQL Server 的命名实例会动态分配端口号,并对客户端使用 UDP 协商,以使客户端能够找到命名实例。为避免在内部防火墙开放一列端口号或不得不创建多个 IPSec 策略,应使用“Server 网络实用工具”来配置实例,使其侦听特定的端口号。
如果重新配置了服务器的端口号,则还必须重新配置所有客户端,以确保它们能够连接到正确的端口号。您或许能够使用客户端网络实用工具,但不应在 Web 服务器上安装此实用工具,而应由应用程序通过将端口号附加于 Server 或 Data Source 属性,在其连接字符串中指定该端口号,如以下代码中所示。
"Server=YourServer|YourServerIPAddress,PortNumber"
如果应用程序使用企业服务 (COM+) 事务,并要求 DTC 的服务,则可能必须对将 Web 应用程序和数据库服务器隔离开的防火墙进行专门配置,以在不同的 DTC 实例间及 DTC 与 SQL Server 间实现 DTC 通信。
有关为 DTC 开放端口的详细信息,请参阅 Microsoft 知识库文章 250367 INFO:Configuring Microsoft Distributed Transaction Coordinator (DTC) to Work Through a Firewall(英文)。
考虑如图 18.4 中所示,使用 Server 网络实用工具的“隐藏服务器”选项。如果在 SQL 网络实用工具的 TCP/IP 属性对话框中选择了此选项,系统会重新配置 SQL Server,使其侦听端口 2433。该选项还会禁止对尝试枚举 SQL Server 实例的客户端所发出的广播要求做出响应。
不能依赖这一措施来完全隐藏 SQL Server 端口。实际上这是无法实现的,因为可以采用多种方式枚举端口以发现其位置。
注意 仅当存在单一 SQL Server 实例时,才能使用此选项。有关详细信息,请参阅 Microsoft 知识库文章 308091 BUG:Hide Server Option Cannot Be Used on Multiple Instances of SQL Server 2000(英文)。

图 18.4
设置 Server 网络实用工具的隐藏服务器选项
安装 SQL Server 时会产生大量注册表项和子项,其中存放有重要的系统配置设置。因此,保证这些设置的安全,以防止攻击者通过更改它们来损害 SQL Server 安装的安全,就显得很重要。
安装 SQL Server 会创建以下注册表项和子项:
| • | 对于默认实例: HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MSSQLSERVER |
| • | 对于命名实例: HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\INSTANCENAME |
| • | 对于 SQL 服务: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER |
本步骤的任务:
| • | 验证对 SQL Server 注册键的权限。 |
| • | 保证 SAM 的安全(限独立服务器)。 |
使用 Regedt32.exe 来验证 Everyone 组对以上所列的 SQL Server 注册键不具有访问权限。默认情况下已有下列控制:
Administrators:完全控制 SQL Server 服务帐户:完全控制
注意 Microsoft 基准安全分析器可对注册表权限进行验证。将该工具用作通过 Regedt32.exe 手动进行权限验证的备用方法。
独立服务器在本地 SAM 数据库中存储帐户名称和单向密码哈希 (LMHash),该数据库是注册表的组成部分。通常只有 Administrators 组的成员才具有对帐户信息的访问权限。
尽管实际上密码并不存储于 SAM 中,且密码哈希不可逆,但如果攻击者获得了 SAM 数据库的副本,便可利用强力攻击密码破解技术来获得有效的凭据。
因此,应如下所示在注册表中创建键(不是值)NoLMHash,禁止在 SAM 中存储 LMHash。
HKLM\System\CurrentControlSet\Control\LSA\NoLMHash
有关详细信息,请参阅 Microsoft 知识库文章 299656 How to Prevent Windows from Storing a LAN Manager Hash of Your Password in Active Directory and Local SAM Databases(英文)。
尽管在辨别入侵者和进行中的攻击行为及诊断攻击痕迹方面审核是必不可少的工具,但它并不能防止发生系统攻击。重要的是,要使所有审核机制(包括 Windows 操作系统级审核和 SQL Server 登录审核)都处于您的支配之下。SQL Server 还支持 C2 级扩展审核。在某些具有严格的审核要求的应用程序方案中,这可能是必需的。
本步骤的任务:
| • | 记录所有失败的 Windows 登录尝试。 |
| • | 记录文件系统中所有失败的操作。 |
| • | 启用 SQL Server 登录审核。 |
要具备检测和跟踪恶意行为的能力,就必须记录失败的 Windows 登录尝试。
| • | 审核失败的登录尝试
|
系统会以事件的形式将 Windows 登录失败记录在 Windows 安全事件日志中。以下事件 ID 表示存在可疑情况:
| • | 531。这表示尝试使用已禁用的帐户进行了登录。 |
| • | 529。这表示尝试使用未知用户帐户或使用密码无效的有效用户帐户进行了登录。这些审核事件的数量意外增加可能预示着有人在尝试猜测密码。 |
对文件系统进行 NTFS 审核来检测可能存在的恶意尝试。这一过程分为两个步骤:
| • | 启用日志记录
|
| • | 审核文件系统中失败的操作
|
系统将失败的审核事件记录在 Windows 的安全事件日志中。
默认情况下,系统不启用 SQL Server 登录审核。最低限度应当对失败的登录进行审核。审核失败的登录尝试是一种有用的检测正在尝试破解帐户密码的攻击者的方法。有关启用 SQL Server 审核的详细信息,请参见步骤 10:SQL Server 安全机制。
以下是进行审核和日志记录时可考虑采取的其他措施:
| • | 如果无法记录安全审核,考虑将系统关闭。此策略选项在“本地安全设置”管理控制台的“安全措施选项”中设置。请考虑为高安全性服务器使用此设置。 |
| • | 考虑 C2 级审核。SQL Server 提供了符合美国政府 C2 认证的审核功能。C2 级审核所提供的审核信息有相当大的增加,但却是以提高磁盘存储要求为代价来实现的。 有关符合 C2 标准的系统的配置的详细信息,请参阅 TechNet 文章“SQL Server 2000 C2 Administrator's and User's Security Guide”,其网址为 http://www.microsoft.com/technet/prodtechnol/sql/maintain/security/sqlc2.asp?frame=true#d(英文)。 |
本节中论述的设置需使用企业管理器“SQL Server 属性”对话框的“安全性”选项卡进行配置。这些设置的应用对象是单一 SQL Server 实例中的所有数据库。图 18.5 中显示了“SQL Server 属性”对话框。

图 18.5
SQL Server 安全机制属性
本步骤的任务:
| • | 将 SQL Server 身份验证设置为仅限 Windows。 |
| • | 将 SQL Server 审核级别设置为“失败”或“全部”。 |
| • | 使用最低权限帐户运行 SQL Server。 |
应当对 SQL Server 进行配置,使其支持仅限 Windows 身份验证,因为这种验证方式有诸多优点。不必在网络上传送凭据;可避免在数据库连接字符串中嵌入用户名和密码;更易于进行安全管理,因为只需要与一个 Windows 安全模块而不是另外的 SQL Server 安全模块打交道;密码到期期间的登录安全性得到提高;最低限度的长度要求及帐户锁定策略。
| • | 配置仅限 Windows 身份验证
|
默认情况下,系统不启用 SQL Server 登录审核。最低限度,应当对失败的登录进行审核。
注意 系统会将日志项写入 SQL 日志文件。默认情况下,这些文件位于 C:\Program Files\Microsoft SQL Server\MSSQL\LOG。可使用任何一种文本阅读器(如记事本)来查看它们。
| • | 启用 SQL Server 审核
|
有关 SQL Server 审核日志的详细信息,请参阅 TechNet 文章及其在“SQL Server 2000 Auditing”文章中的“Understanding the Audit Log”一节,其网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/dbsql/sql2kaud.asp?frame=true(英文)。
使用最低权限帐户运行 SQL Server 服务可将设法从 SQL Server 执行操作系统命令的攻击者所造成的危害降至最低水平。不应为 SQL Server 服务帐户授予诸如 Administrators 组成员身份等较高特权。
| • | 配置 SQL Server 的运行方式帐户 此过程使用“企业管理器”,而不是“服务 MMC”管理单元,因为“企业管理器”会自动授予 SQL Server 服务帐户所要求的用户权限。
|
有关创建最低权限帐户来运行 SQL Server 的详细信息,请参阅步骤 4:帐户。
为能访问数据库中的对象,需要通过两层安全检查。首先需要向 SQL Server 提供一组有效的登录凭据。如果使用 Windows 身份验证,则需要使用已被授予 SQL Server 登录的 Windows 帐户进行连接。如果使用 SQL Server 身份验证,则需要提供有效的用户名和密码组合。
登录会授予您对 SQL Server 的访问权限。要访问数据库,登录必须与想连接到的数据库内的数据库用户相关联。如果登录与某数据库用户关联,则登录在数据库内的权限取决于与该用户关联的权限。如果登录未与某特定数据库用户关联,则登录的权限取决于授予数据库中的公共角色的权限。所有有效的登录均与公共角色关联,该角色存在于每一个数据库中,且无法被删除。默认情况下,所创建的任一数据库内的公共角色都不会被授予任何权限。
请利用以下建议来改进数据库中的授权设置:
| • | 使用强 sa(系统管理员)密码。 |
| • | 删除 SQL 来宾用户帐户。 |
| • | 删除 BUILTIN\Administrators 服务器登录 |
| • | 不为公共角色授予权限。 |
默认系统管理员 (sa) 帐户一直是无数攻击的目标。它是 SQL Server 管理固定服务器角色 sysadmin 的默认成员。请确保对此帐户使用强密码。
要点即便将身份验证从 SQL 改为 Windows,sa 仍然处于活动状态。
对所有帐户,尤其是特权帐户(如 sysadmin 和 db_owner 角色的成员)均使用强密码。如果使用复制,请给用于与远程分布式服务器建立连接的 distributor_admin 帐户也使用强密码。
如果启用了 Windows 2000 的来宾帐户,则安装 SQL Server 时会创建一个来宾用户帐户。如果登录有对 SQL Server 的访问权限,但没有通过数据库用户帐户对数据库进行访问的权限,则登录便会具有来宾的身份。
好的做法是禁用 Windows 的来宾帐户。此外,还要从所有用户定义数据库中删除来宾帐户。请注意,无法从 master、tempdb、复制及分发数据库中删除来宾帐户。
默认情况下,系统会将 BUILTIN\Administrators 本地 Windows 组添加到 sysadmin 固定服务器角色,以对 SQL Server 进行管理。这意味着作为 BUILTIN\Administrators 成员的域管理员可以不受限制地访问 SQL Server 数据库。大多数公司会对域管理员和数据库管理员角色加以区分。如果要进行这种区分,请删除 BUILTIN\Administrators SQL Server 登录。一种好的做法是,按以下步骤中所示,专门创建这样一个 Windows 组:它的位置中包含特定数据库管理,并被作为服务器登录添加到 SQL Server 中。
| • | 为数据库管理员添加新登录
|
这样便将新登录添加到 sysadmin 服务器角色中。
| • | 删除 BUILTIN\Administrators 登录
|
有关在安装后重新配置 SQL 服务帐户的详细信息,请参阅 MSDN 文章“Changing Passwords and User Accounts”,其网址为 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/instsql/in_afterinstall_4p0z.asp(英文)。
所有数据库均包含一个公共数据库角色。每个其他用户、组和角色都是该公共角色的成员。您无法删除公共角色的成员,不过,可以不为授予对应用程序的数据库表、存储过程及其他对象访问权限的公共角色授予权限。否则,便无法利用用户定义的数据库角色获得所需授权,因为公共角色会为数据库中的用户授予默认权限。
配置 SQL Server 登录、用户和角色时,还请考虑以下建议:
| • | 限制 sysadmin 的成员数。为确保实现个体可说明性,请限制作为 sysadmin 角色成员的帐户的数量。理想情况下,此角色的成员用户不应超过两位。 |
| • | 授予受限的数据库权限。只为帐户分配完成作业所绝对必需的权限。应避免使用诸如 db_datareader 和 db_datawriter 等内置角色。这些角色不提供任何授权粒度,并具有对所有自定义数据库对象的访问权限。 |
| • | 不要更改应用于 SQL Server 对象的默认权限。在 SQL Server Service Pack 3 之前的版本中,公共角色不具有对各种默认 SQL Server 数据库对象的访问权限。在 Service Pack 3 中,对安全性设计进行了复审,并通过在非必需处删除公共角色及执行更为精确的角色检查提高了安全性。 |
SQL Server 提供了两个用于开发和训练的示例数据库以及一系列内置存储过程和扩展存储过程。不应将示例数据库安装在生产服务器上,并应保证功能强大的存储过程和扩展存储过程的安全。
本步骤的任务:
| • | 删除示例数据库。 |
| • | 保证存储过程的安全。 |
| • | 保证扩展存储过程的安全。 |
| • | 限制 cmdExec 对 sysadmin 角色的访问权限。 |
使用 SQL Server 企业管理器来删除任何示例数据库。默认情况下,SQL Server 包含 Pubs 和 Northwind 示例数据库。
限制对应用程序的存储过程的访问。请不要为公共角色或来宾用户授予对所创建的任何存储过程的访问权限。保证存储过程安全的主要防线先是要确保使用强身份验证,然后是提供精确授权,从而实现只允许必要的用户权限来运行存储过程。
建议的做法是:为应用程序创建一个 SQL Server 登录,将登录映射到数据库用户,再将用户添加到用户定义数据库角色,然后为角色授予权限。
未对删除存储过程进行测试,也不支持删除。
SQL Server 代理使用 cmdExec 函数来执行 Windows 命令行应用程序和其排定的脚本。在 SQL Server Service Pack 3 之前的版本中,默认情况下 SQL Server 代理允许非 sysadmin 角色所属用户排定可能需要特许系统访问权限的作业。应当对此设置进行更改,以只允许 sysadmin 角色的成员排定作业。
| • | 限制 cmdExec 对 sysadmin 角色的访问
|
注意 进行此项更改可能需要提供用户名和密码。如果 SQL Server 服务帐户是最低权限用户(按本模块前文中的建议),系统会提示您输入具有服务修改特权的管理员帐户的用户名和密码。
如果看一下显示有安全保证的 SQL Server 数据库服务器的属性的快照视图,便可轻松、快捷地将其设置与自己服务器的设置加以比较。表 18.5 中所显示的设置基于对 SQL Server 数据库服务器的分析。经证实,这些设置对攻击的适应性很高,其所示范的是可靠的安全做法。
表 18.5:安全数据库服务器快照
| 组成部分 | 特性 |
修补程序和更新程序 | 对 Windows 2000 和 SQL Server 应用最新的 Service Pack 和修补程序 |
服务 | 禁用非必需的服务。 |
协议 | 删除或禁用不必要的协议。 |
帐户 | 对 SQL Server 服务帐户实施安全保护(将其设置为最低权限帐户)。 |
文件和目录 | 以 NTFS 格式对卷进行格式化。 |
共享 | 从服务器中删除不必要的共享。 |
端口 | 封锁除 SQL Server 侦听端口 [默认为 1433] 外的所有其他端口 |
注册表 |
从 SQL Server 注册键中删除 Everyone 组。 |
审核和日志 | 记录失败的 Windows 登录尝试。 |
SQL Server 设置 |
|
SQL Server 安全机制 | 可能的情况下,将 SQL Server 的身份验证设置为仅限 Windows。 |
SQL Server 登录、用户及角色 | Sa 帐户使用强密码。 |
SQL Server 数据库对象 | 从服务器中删除所有示例数据库。 |
除本模块中所述的步骤外,还请考虑以下原则:
| • | 在数据库服务器上安装证书。如果使用 Windows 身份验证(NTLM 或 Kerberos),系统不会通过网络向 SQL Server 传送登录凭据。如果使用 SQL 身份验证,好的做法是对凭据加密,因为它们是以未加密格式被传送给 SQL Server 的。通过在数据库服务器上安装证书来进行加密。这样做的结果是,在网络中传送的 SQL 凭据会被自动加密。确保应用程序安全地存储了数据库连接字符串也是一种好的做法。有关详细信息,请参阅模块 14 构建安全的数据访问。 |
| • | 限制对敏感命令及存储过程的访问。SQL Server 提供了功能强大的与操作系统的挂接。例如,可以使用 xp_cmdshell 扩展存储过程来运行任何操作系统命令。如果攻击者设法(例如,利用 SQL 注入漏洞)做到了在数据库中随意运行命令,则只有用于运行 SQL Server 的帐户的安全凭据才能限制其执行操作系统命令的能力。这便是通过最低权限帐户来运行 SQL Server 的主要原因。 |
| • | 使用专用计算机作为数据库服务器。还请将其加入群集,以作故障转移之用。 |
| • | 对数据库服务器采取物理保护。将服务器置于一个安全的计算机房中。 |
| • | 限制本地登录。除管理员外,不允许任何人在本地登录服务器。 |
需要定期监控数据库服务器的安全状态并定期对其更新,以协助防止新发现的漏洞被利用。协助保证数据库服务器的安全:
| • | 定期执行备份。 |
| • | 审核组成员身份。 |
| • | 监控审核日志。 |
| • | 确保安装最新的 Service Pack 和修补程序。 |
| • | 执行安全评估。 |
| • | 使用安全性通告服务。 |
必须具备在数据被损害时恢复数据的能力。如果恢复系统现已就位,请在实际使用前先对其进行测试。不应在进行首次备份和恢复流程测试时执行首次实际数据恢复操作。有关备份和恢复 SQL Server 的详细信息,请参阅以下资源:
| • | SQL Server 2000 文档中的“Backing Up and Restoring Databases” |
| • | Rudy Lee Martinez 所撰写的“Backup and Restore Strategies with SQL Server 2000”,其网址为 http://www1.us.dell.com/content/topics/global.aspx/power/en/ps4q00_martin(英文) |
跟踪用户组成员身份,尤其是像 Administrators 这样的特权组的组成员身份。执行以下命令可列出 Administrators 组的成员:
net localgroup administrators
通过手动查看或使用 Microsoft 知识库文章 296085 How To:Use SQL Server to Analyze Web Logs(英文)中所述的方法对审核日志进行定期监控。
设立计划来对服务器的软件进行分析并订阅安全警报。定期使用 MBSA 来扫描服务器,看其是否缺少修补程序。以下链接提供了最近的更新:
| • | Windows 2000 Service Pack。最新 Service Pack 列表位于 http://www.microsoft.com/windows2000/downloads/servicepacks/default.asp(英文)。 |
| • | 重要更新。这些更新有助于解决已知问题,并有助于防止计算机受已知安全漏洞的损害。要了解最近的重要更新,请参阅 http://www.microsoft.com/windows2000/downloads/critical/default.asp(英文)。 |
| • | 高级安全更新。还请密切注意高级安全更新,其网址为 http://www.microsoft.com/windows2000/downloads/security/default.asp(英文)。 |
定期使用 MBSA 检查安全漏洞及确定所缺少的修补程序和更新程序。安排 MBSA 每天运行,并对结果进行分析,以便根据需要采取措施。有关自动化 MBSA 的详细信息,请参阅本指南“如何”一节中的 如何:使用 MBSA。
利用表 18.6 中所列的 Microsoft 服务获得安全公告,其中有关于可能存在的系统漏洞的通知。
表 18.6:安全性通告服务
| 服务 | 位置 |
TechNet security Web site | http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/current.asp(英文)
|
Microsoft 安全性通告服务 | http://register.microsoft.com/subscription/subscribeme.asp?ID=135(英文)
|
此外,还请订阅表 18.7 中所示的业界安全警报服务。利用它可以在尚无相应的修补程序时,对漏洞的威胁进行评估。
表 18.7:业界安全性通告服务
| 服务 | 位置 |
CERT Advisory Mailing List | http://www.cert.org/contact_cert/certmaillist.html(英文)
|
Windows and .NET Magazine Security UPDATE | http://email.winnetmag.com/winnetmag/winnetmag_prefctr.asp(英文)
|
NTBugtraq | http://www.ntbugtraq.com/default.asp?pid=31&sid=1#020(英文)
|
管理员往往需要具备管理多台服务器的能力。确保远程管理解决方案的要求不会损害安全。如果需要远程管理能力,采纳以下建议有助于提高安全性:
| • | 限制管理帐户的数量。这包括限制管理帐户的数量以及限制获许进行远程登录的帐户。 |
| • | 限制工具。主要选项包括“SQL 企业管理器”和“终端服务”。“SQL 企业管理器”和“终端服务”都使用 Windows 安全。因此,此处需要考虑的主要是对所使用的 Windows 帐户和端口施加限制。 |
| • | 限制获许管理服务器的计算机。可利用 IPSec 来限制可连接到 SQL Server 的计算机。 |
以安全方式使用 Microsoft 终端服务来对数据库服务器实施远程管理是可行的。
终端服务所基于的是 Microsoft 的称为远程桌面协议 (RDP) 的专用协议。RDP 使用 TCP 3389 端口,支持两名并发用户。以下各节介绍如何针对安全管理的需要对终端服务进行安装和配置:
| • | 安装终端服务。 |
| • | 配置终端服务。 |
| • | 要安装终端服务,请执行以下操作
|
| • | 使用“管理工具”程序组中提供的终端服务配置 MMC 管理单元来配置以下内容
|
在客户端与服务器间使用安全 VPN 连接或 IPSec 隧道来增强安全性。此方法提供了相互身份验证,并将 RDS 有效负载加密。
“终端服务”未对文件传输提供内置支持。不过,可以安装“Windows 2000 Server Resource Kit”中的“File Copy”实用程序来为“终端服务”中的剪贴板重定向功能添加文件传输功能。有关该实用程序和安装说明的详细信息,请参阅 Microsoft 知识库文章 244732 How To:Install the File Copy Tool Included with the Windows 2000 Resource Kit(英文)。
数据库服务器是攻击者的首选目标。必须保证数据库服务器的安全,防止其遭受内部、外部、网络级和应用程序级的攻击。安全的数据库服务器除了强化的 Windows 2000 安装外,还须有强化的 SQL Server 2000 安装,并与由路由器及防火墙提供的安全网络防御措施相结合。
要查看快速参考检查表,请参阅本指南“检查表”一节中的 检查表:保证数据库服务器的安全。
有关 SQL Server 安全的详细信息,请参阅以下资源:
| • | SQL Server 2000 Resource Kit CD,模块 10 - Implementing Security:http://www.microsoft.com/technet/prodtechnol/sql/reskit/sql2000/part3/c1061.asp(英文)。 |
| • | Richard Waymire 和 Ben Thomas 撰写的“SQL Server 2000 Security”:http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/dbsql/sql2kaud.asp?frame=true(英文)。 |
| • | 有关更改 SQL Server 服务帐户的信息,请参阅 Microsoft 知识库文章 283811 How To:Change the SQL Server Service Account Without Using SQL Enterprise Manager in SQL Server 2000(英文)。 |
| • | 有关 SQL Server 审核的信息,请参阅 TechNet 上 John Howie 撰写的文章“SQL Server 2000 Auditing”,其网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/dbsql/sql2kaud.asp?frame=true(英文) |