INFO:MSDE 安全和身份验证

文章翻译 文章翻译
文章编号: 325022 - 查看本文应用于的产品
本文的发布号曾为 CHS325022
展开全部 | 关闭全部

本文内容

概要

系统管理员和开发人员必须考虑安全性和身份验证问题,因为未经授权的用户可能会损坏、窃取或以其他方式获得对数据的访问权限。本文对 Microsoft 桌面引擎 (MSDE) 安全性和身份验证进行概述,并介绍有关如何使数据更加安全的有用提示。

更多信息

安全性

若要保护数据库,必须对您的用户有所了解。当用户连接到数据库时,他们可能有许多不同的目的。用户可以读取数据、更改数据、删除数据或插入更多的数据。保护数据库的第一步就是确定允许每个用户对数据库执行哪些操作。

用户、组和角色

SQL Server 和 MSDE 具有用户、组和角色,您可以使用它们控制数据库上的安全级别。如果一组特定的用户只需要读取数据库中的数据,则您可以创建一个名为“OnlyReaders”的组,然后将用户添加到该组。作为该组成员的用户只能读取数据;不管有意无意,他们都不能更改数据。

若要了解有关用户、组和角色的更多信息,请参阅 SQL Server 联机图书。若要在 MSDE 数据库上添加用户、组和角色,请使用 OSQL 实用工具。

SA 帐户密码

使数据库更安全的另一个简单的步骤就是验证 SA 帐户是否具有安全密码。许多开发人员和系统管理员将 SA 帐户密码留空,这将使任何人都可以访问数据库。

若要在您的 MSDE 数据库上更改 SA 帐户密码,请按照下列步骤操作:
  1. 在承载您正在连接到的 MSDE 实例的计算机上,打开命令提示窗口。
  2. 键入下面的命令,然后按 Enter 键:

    osql -U sa

    此命令使用 SA 帐户将您连接到 MSDE 的本地、默认实例。
  3. 在单独的行内键入以下命令,然后按 Enter 键:

    sp_password null
    'mynewpassword'
    'sa'

    注意:用新密码替换 'mynewpassword'。

    请注意您将接收到以下消息,表示您的密码已成功更改:
    密码已更改。
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
325003 如何使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000)

ASP 中的安全性

Active Server Pages 中的安全性与基于 Windows 程序的安全性同等重要。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
176377 INFO:从 ASP 访问具有集成安全的 SQL Server

安全修补程序

为了维护安全性,您不仅需要管理用户、组和角色,还需要验证以确保您的数据库服务器上安装了最新的修补程序。可以为 SQL Server 和 MSDE 下载安全修补程序。Microsoft 建议您立即安装这些修补程序。有关更多信息,请访问下面的 Microsoft 网站:
Microsoft 安全公告 MS02-034
http://www.microsoft.com/technet/security/bulletin/MS02-034.mspx
这是一个累积修补程序,包括以前为 SQL Server 2000 发布的所有修补程序的功能。另外,此修补程序还将修复以下三个新发现的影响 SQL Server 2000 和 SQL Server 桌面引擎(也称为 MSDE 2000)的漏洞。(这些漏洞不会影响以前版本的 SQL Server 或 MSDE):
  • 用于对 SQL Server 凭据信息进行加密的过程中的缓冲区溢出漏洞。未经授权的用户可以利用此漏洞获取对数据库的有效控制。用户可能会获得对服务器本身的控制,但具体情况取决于 SQL Server 使用的帐户。
  • 与在 SQL Server 表中批量插入数据有关的过程中的缓冲区溢出漏洞。未经授权的用户可以利用此漏洞获取对数据库的有效控制。用户可能会获得对服务器本身的控制。
  • 由于存储 SQL Server 服务帐户信息的注册表项上存在不正确的权限而导致的管理凭据提升漏洞。未经授权的用户可以利用此漏洞在系统上获得比系统管理员授予该用户帐户的权限更多的权限。该用户可能获得与操作系统相同的权限。有关更多信息,请访问下面的 Microsoft 网站:
    Microsoft 安全公告 MS02-035
    http://www.microsoft.com/china/security/bulletins/MS02-035.asp
当您安装 SQL Server 7.0(包括 MSDE 1.0)、SQL Server 2000 或者 SQL Server 7.0 或 SQL Server 2000 的某个 Service Pack 时,将收集您为安装过程提供的信息并将其存储在名为 Setup.iss 的安装文件中。您可以使用 Setup.iss 文件自动执行其他 SQL Server 系统的安装。

SQL Server 2000 还包括将无人参与的安装记录到 Setup.iss 文件的功能,而无需您实际执行安装。在以下情况下,设置运行 SQL Server 的计算机的管理员可以赋予安装例程一个密码:
  • 如果设置 SQL Server 具有混合模式身份验证,则必须为 SQL Server 管理员帐户(SA 帐户)提供一个密码。
  • 不管是以混合模式还是以 Windows 身份验证模式运行 SQL Server,您都可以要求一个用户 ID 和密码来启动 SQL Server 服务帐户。
不管是哪种情况,该密码都存储在 Setup.iss 文件中。在发布 SQL Server 7.0 Service Pack 4 之前,该密码以纯文本格式存储。对于 SQL Server 7.0 Service Pack 4 以及 SQL Server 2000 Service Pack 1 和 2,该密码在加密后进行存储。另外,在安装过程中,将创建一个显示安装结果的日志文件。该日志文件包括存储在 Setup.iss 文件中的所有密码。

身份验证

身份验证是 SQL Server 和 MSDE 对登录进行检查的方法,用来验证是否允许该用户连接到服务器。SQL Server 和 MSDE 使用两种安全模式:Windows 身份验证和混合模式身份验证。

Windows 身份验证

Windows 身份验证使用 NTLM 连接到 MSDE。如果您以管理员的身份登录计算机,则 MSDE 会尝试将您作为管理员进行身份验证。

混合模式身份验证

混合模式身份验证允许您通过使用 Windows 身份验证或 SQL Server 身份验证登录到 MSDE。SQL Server 身份验证允许您在 MSDE 中创建用户。当开发程序时,您可以在连接到 MSDE 时将用户 ID 和密码包括在连接字符串中。有关身份验证模式的更多信息,请访问以下 Microsoft 网站:
身份验证模式
http://msdn2.microsoft.com/en-us/library/aa905171(SQL.80).aspx

在安装过程中打开混合模式身份验证

在安装过程中,您可以通过使用以下命令参数运行安装来更改 MSDE 使用的身份验证模式:
SECURITYMODE=SQL
此命令参数将使所安装的 MSDE 具有混合模式身份验证。通过此身份验证模式,您可以通过使用 Windows 身份验证或 SQL Server 身份验证连接到 MSDE。

注意:默认情况下,对于 Windows NT 和更高版本,MSDE 通过使用 Windows 身份验证进行安装。在运行 Windows 98 的计算机上,MSDE 使用 SQL 身份验证。

在安装完 MSDE 后打开混合模式身份验证

警告:注册表编辑器或其他方法使用不当可能导致严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证您可以解决这些问题。修改注册表需要您自担风险。

默认情况下,对于 Windows 身份验证,将 LoginMode Windows 注册表子项的值设置为 1。若要在安装完 MSDE 后打开混合模式身份验证,您必须将此值更改为 2LoginMode 子项的位置取决于您是将 MSDE 作为默认 MSDE 实例安装还是作为命名实例安装。
  • 如果 MSDE 是作为默认实例安装的,则 LoginMode 子项位于以下注册表子项中:
    HKLM\Software\Microsoft\MSSqlserver\MSSqlServer\LoginMode
  • 如果 MSDE 是作为命名实例安装的,则 LoginMode 子项位于以下注册表子项中:
    HKLM\Software\Microsoft\Microsoft SQL Server\Instance Name \MSSQLServer\LoginMode
若要将 LoginMode 的值更改为 2,请按照下更步骤操作:
  1. 在“控制面板”中,打开服务工具,然后停止 MSSQLSERVER 和所有其他相关服务(例如 SQLSERVERAgent)。
  2. 开始菜单上,单击运行,键入 regedt32,然后单击确定以启动“注册表编辑器”。
  3. 找到以下两个子项之一(取决于 MSDE 是作为默认 MSDE 实例安装的还是作为命名实例安装的):
    • HKEY_LOCAL_MACHINE\Software\Microsoft\MSSqlserver\MSSqlServer\

      - 或 -
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Name\MSSQLServer\
  4. 在右窗格中,双击 LoginMode 子项。
  5. DWORD 编辑器对话框中,将此子项的值设置为 2,确保选择了 Hex 选项,然后单击确定
  6. 重新启动 MSSQLSERVER 服务和 SQLSERVERAgent 服务以使更改生效。

参考

有关更多信息,请访问下面的 Microsoft 网站:
安全和保密
http://www.microsoft.com/china/security/
通过 Microsoft Access 管理 Microsoft SQL Server 安全性
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnacc2k2/html/odc_sssec.asp
SQL Server 2000 安全白皮书
http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sp3sec00.mspx
有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
259710 PRB:当您更改 SA 密码时,SQL Server Agent 无法在 Windows 9x 上启动
319930 如何连接到 Microsoft 桌面引擎
313418 PRB:使用空 (NULL) SA 密码的非安全的 SQL Server 会给蠕虫程序以可乘之机
285097 INF:如何在使用 Windows 安装程序安装 SQL Server 2000 桌面引擎时将默认登录身份验证模式更改为 SQL
248683 INF:用于 ISV 的 Microsoft 数据引擎安全建议
321698 PRB:无法使用具有 SQL 身份验证的 ADO.NET 连接到 MSDE

属性

文章编号: 325022 - 最后修改: 2007年3月13日 - 修订: 5.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 7.0 Desktop Edition
关键字:?
kbinfo kbsecurity KB325022
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com