Help and Support

文章编号: 263968 - 最后修改: 2007年10月26日 - 修订: 9.2

Service Pack 安装可能会将系统管理员密码保存在文件中

本页

展开全部 | 关闭全部

症状

如果您使用 SQL Server 身份验证(也称为“标准安全”)安装“适用于”一节中列出的产品,则系统管理员 (sa) 密码可能会以明文格式或以加密可读格式存储在 SQL Server 安装文件中。

此外,如果您使用域帐户配置了 SQL Server 服务,则域帐户密码可能会以弱加密格式写入 Setup.iss 文件中。

注意:Microsoft SQL Server 2000 Service Pack 3 (SP3) 或更高版本对这些文件中包含的密码使用加密。这种加密有助于提高安全性。但是,如果不再需要加密的密码或包含加密密码的安装文件,我们仍然建议您删除这些密码或文件。

SQL Server 7.0

sa 密码或域帐户密码以明文格式或弱加密格式保存在 %Windir% 文件夹中的 Setup.iss 文件中。

注意:如果原始安装是通过终端服务器连接完成的,则 %Windir% 文件夹也将会不同。当安装程序完成时,会在 %SystemDrive%\MSSQL7\Install\or\Tools 文件夹中创建该文件的副本。

密码信息还可能包括在 Sqlstp.log 文件和 Sqlsp*.log 文件中。这些文件存在于 %Windir% 文件夹和 Temp 文件夹中。如果原始安装是通过终端服务器连接完成的,则 %Windir% 文件夹也将会不同。在基于 Microsoft Windows 2000 的计算机上,在“系统”控制面板的高级选项卡的环境变量下设置了 Temp 文件夹。

SQL Server 2000

对于默认安装,sa 密码或域帐户密码以加密但可读格式保存在 Drive:\Program Files\Microsoft SQL Server\Mssql\Install 文件夹中的 Sqlstp.log、Sqlsp.log 和 Setup.iss 文件中。请注意,对于命名的实例安装,Mssql 文件夹可能为 MSSQL$InstanceName。SQL Server 2000 的 Setup.iss 文件使用访问控制列表。因此,只有 Windows NT 管理员和 SQL Server 管理员可以访问该文件。

SQL Server 2000 也能够在 Windows Clustered 服务器上本机安装。远程群集安装日志文件为 Remsetup.ini,及类似于每个远程节点的 Setup.iss 文件的远程安装脚本文件。这些远程安装脚本文件名为 RemoteComputerName_ InstanceName.iss。这些文件也存储在 %Windir% 文件夹中,且在安装程序完成时通常会删除。但是,如果群集安装失败,这些文件则可能会留下来。

解决方案

要解决此问题,请使用以下方法之一:
  • 使用 Microsoft Windows NT 安全身份验证安装原始发布版本的 SQL Server 或 SQL Server Service Pack。然后,使用 LocalSystem 帐户配置 SQL 服务。这种方法可以避免发生此问题。
  • 安装 Service Pack 后,更改 SQL Server 系统管理员 (sa) 密码和 SQL 服务域帐户密码。
  • 安装“适用于”一节列出的产品后,必须运行 Killpwd.exe 实用工具来清理安装文件。Killpwd.exe 实用工具适用于 SQL Server 7.0 和 SQL Server 2000。

    注意:Microsoft 先前发布了 SQL Server 7.0 (MSDE 1.0) Service Pack 2 和 SQL Server 7.0 Service Pack 3 的更新。但是,您无须使用这些更新,因为已更新的 Killpwd.exe 实用工具可取代这些先前的更新。

Killpwd 实用工具简介

Microsoft 已经创建了一种命令实用工具 Killpwd.exe,用于在 Microsoft SQL Server 安装文件中搜索 sa 登录密码。Killpwd.exe 实用工具每找到一个 sa 密码实例,就会在基本模式操作下将该 sa 密码从日志文件中删除。默认情况下,该工具会搜索 %Windir%\Temp 和 %Temp% 文件夹中的 Sqlsp.log、Sqlstp.log 和 Setup.iss 文件,其中 %Windir% 和 %Temp% 是由 Microsoft Windows 定义的环境变量。

Microsoft 已经更新了 Killpwd.exe 实用工具,以包括远程和群集安装创建的安装文件所位于的更多位置。在某些情况下,这些文件的名称和路径可能会与默认值不同。这些变量如下所示:
  • 群集安装将在所有节点上创建安装文件。如果要从单一节点运行该实用工具,则在删除这些文件时还必须指定指向远程节点上的驱动器的 UNC 路径。另外,也可从每个节点运行该实用工具以清理本地存在的安装文件。
  • 为群集安装创建的远程文件遵循以下格式:
    RemoteComputerName_InstanceName.iss
    如果已经修改了计算机名称或已经删除了某个实例,则默认情况下该实用工具不知道根据这些文件名搜索文件。
  • 如果已经更改了 Windows 群集的名称,则日志文件使用旧文件名。在这种情况下,默认情况下该实用工具不知道根据这些文件名搜索文件。
  • 终端服务器连接使用不同的 %Temp% 和 %WinDir% 文件夹。这些文件夹可能会因用户 ID 和环境变量而异。
  • 远程安装可能使用本地 %Temp% 位置而不是在安装 SQL Server 的计算机上存储文件。Killpwd 实用工具无法确定是否为这种情况,也无法知道使用哪条远程路径来搜索日志文件。
从本文中的链接可下载并运行最新的 Killpwd.exe 实用工具。该新版本能够指定默认位置之外的位置,以便找到这些文件的所有可能版本。您也可以指定远程位置。

有关这些日志文件和无人参与安装的更多信息,请参见 SQL Server 文档。如果您创建了一个 *.iss 文件来执行无人参与安装,则必须将该 *.iss 文件复制到可搜索文件夹以外的安全性得到增强的位置。

注意:当删除 SQL Server 时,这些安装信息文件也会留下来。这种现象是设计导致的。此行为可让您诊断在被强制回滚时安装可能失败的原因,并可让您使用 ISS 文件来重新安装该实例或其他实例。在这种情况下,显然该 SQL Server 实例不再可用。但是,密码还可以使用,您可以对尚未删除的 SQL Server 其他实例使用相同的密码。

要运行 Killpwd.exe 实用工具,请使用以下方法之一:
  • 双击 Killpwd.exe。
  • 在命令提示符处运行 Killpwd.exe。

    在命令提示符处运行 Killpwd.exe 时,会收到更多信息。

    注意:在命令提示符处,可以使用以下参数:

    帮助信息
    Killpwd.exe /?
    指定非默认的搜索路径和文件
    Killpwd.exe PathFileName
注意:对于 SQL Server 2000,如果要删除 sa 密码的实例,必须指定 Setup.iss 文件的位置。对于默认安装,SQL Server 2000 的 Setup.iss 文件位于 Drive:\Program Files\Microsoft SQL Server\Mssql\Install 文件夹中。请注意,Mssql 文件夹可能为 MSSQL$InstanceName。如果您以后要使用 Setup.iss 文件执行 SQL Server 的无人参与安装,请不要对 Setup.iss 文件运行 Killpwd.exe。

您可能会收到以下消息:
初始化管理员 SID 时出错。
获取标记信息时出错。
打开进程标记时出错。
检索当前进程模块信息时出错。
检索程序文件信息时出错。
无效参数:%s
无效路径:%s
要执行自定义扫描,必须同时指定路径 (/p) 和文件 (/f)。
只有管理员才能运行此工具,以确保所有生成的文件都可访问。
检索注册表项 Software\\Microsoft\\MSSQLServer\\ClientSetup\\SqlPath 时出错。
使用 /N 选项扫描时,搜索匹配号码可能大于正常扫描时的匹配号码,因为某些搜索字符串是其他字符串的子字符串。在正常扫描中,密码被删除,因为搜索进度非常类似,搜索字符串多次与同一字符串不匹配。
内存分配失败。退出。
从文件搜索中获取下一文件时出错。
枚举群集的节点时出错。
群集名比提供的内部缓冲名称长。
打开文件 %s 时出错
在文件 %s 内部获取位置时出错
在文件 %s 内部设置位置时出错
检索计算机名时出错。
检索系统目录时出错。
检索 Windows 目录时出错。
处理 Windows 系统目录 %s 时出错。
检索 TEMP 环境变量时出错。
检索注册表项 Software\\Microsoft\\MSSQLServer\\Setup\\SqlPath 时出错。

运行 Killpwd.exe 实用工具的步骤

要运行 Killpwd.exe 实用工具,请按照以下步骤操作:
  1. 下载并解压缩 Killpwd.exe。

    可以从 Microsoft 下载中心下载以下文件:
    收起这个图片展开这个图片
    下载
    立即下载 Killpwd.exe 程序包。 (http://www.microsoft.com/downloads/details.aspx?FamilyId=7BDA4AE4-E287-4A6B-86E4-9AFDB3EA26C9&displaylang=en) 发布日期:2005 年 6 月 14 日

    有关如何下载 Microsoft 支持文件的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    119591? (http://support.microsoft.com/kb/119591/ ) 如何从联机服务获取 Microsoft 支持文件
    Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器上,该服务器可帮助防止对该文件进行未经授权的更改。
  2. 运行自解压缩可执行文件以解压缩该程序包。在解压缩过程中,系统将提示您为 Killpwd.exe 指定一个目标文件夹。
  3. 在 Windows Explorer 中,移动到您在步骤 2 中指定的文件夹。双击 Killpwd.exe 以运行该程序。或者打开命令提示符,然后输入 Killpwd.exe 的路径以运行可执行文件。

命令行参数

在新版本的 Killpwd.exe 中可以使用以下命令行参数:
收起该表格展开该表格
参数操作
/? /H /Help显示 Killpwd 工具帮助文本。
/F /File扫描指定的文件以查找密码,然后删除该密码。
/P /Path扫描指定文件夹中的文件以查找密码,然后删除该密码。
/Nologo取消徽标信息输出。
/R启用递归模式。扫描并清理指定文件夹中的所有文件和子文件夹。
/N启用仅扫描模式。扫描文件而不删除密码。此参数用于创建该实用工具要进行的更改的列表。在实际执行更改前,可使用此列表查看更改的正确性。
/V /Verbose启用详细模式日志记录。
注意:您必须有 Windows 管理员权限才能运行此实用工具。

状态

Microsoft 已经确认这是在“适用于”一节中列出的 Microsoft 产品中存在的问题。

有关如何下载和安装最新 SQL Server Service Pack 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
301511? (http://support.microsoft.com/kb/301511/ ) INF:如何获得最新的 SQL Server 7.0 Service Pack
290211? (http://support.microsoft.com/kb/290211/ ) 如何获取最新的 SQL Server 2000 Service Pack
有关更多信息,请与您的主要支持提供商联系。

更多信息

Sqlsp.log 文件用于跟踪安装进度和排除 Service Pack 安装故障。

有关如何确定 Windows 安装在哪个文件夹中的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
305792? (http://support.microsoft.com/kb/305792/ ) 如何确定 Windows 安装在哪个文件夹中

参考

有关更多信息,请参见以下 Microsoft 安全公告:
http://www.microsoft.com/china/security/bulletins/MS02-035.asp (http://www.microsoft.com/china/security/bulletins/MS02-035.asp)

http://www.microsoft.com/technet/security/bulletin/MS00-035.mspx (http://www.microsoft.com/technet/security/bulletin/MS00-035.mspx)
如果您未找到问题的答案,请访问 Microsoft SQL Server 新闻组,其网站为:
Microsoft SQL Server Newsgroups(Microsoft SQL Server 新闻组) (http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.sqlserver.server)
您对本文或其他 Microsoft SQL Server 知识库文章有何意见?请将您的意见或建议发送至:
SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com)

这篇文章中的信息适用于:
  • Microsoft SQL Server 7.0 标准版
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 标准版
关键字:?
kbproductlink kbdownload kbbug kbfix kbgraphxlinkcritical kbqfe KB263968
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

文章翻译

 

Related Support Centers