某些或所有 SQL Server 2005 服务不会列出在 SQL Server 配置管理器中或 SQL Server 2005 外围应用配置中执行操作时,您会收到"无 SQL Server 2005 组件未找到"错误消息

文章翻译 文章翻译
文章编号: 941823 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

在 Microsoft SQL Server 2005,打开 SQL Server 配置管理器。在 SQL Server 配置管理器窗口中时,您会遇到以下问题之一单击 SQL Server 2005 服务
  • 列出没有服务。
  • 某些服务不会列出。
当您在 SQL Server 2005 外围应用配置窗口中执行操作时,您会收到以下错误消息:
指定的计算机上找到的没有 SQL Server 2005 的组件。正在安装任何组件,或者您不是此计算机上的管理员。(SQLSAC)

原因

出现此问题的原因是网络服务帐户没有足够的权限,查询有关 SQL Server 2005 服务信息。

在应用某些安全策略,以更新 SQL Server 2005 服务的安全设置后,可能会出现此问题。在具体的而言应用组策略更新的安全设置后,可能会发生此问题。

解决方案

若要解决此问题,请确保网络服务帐户具有读取权限才能查询有关 SQL Server 2005 服务信息。若要这样做,请按照下列步骤操作:
  1. 打开一个会话中已安装的 SQL Server 的服务器。通过使用 Windows 帐户的一部分的域管理员组打开该会话。
  2. 下载并再安装组策略管理控制台中,如果您还没有安装控制台。
  3. 打开组策略管理控制台中。然后,选择组织单位 SQL Server 所在的位置。
  4. 创建新的组策略对象或编辑现有的组策略对象与该组织单位相关联的。要编辑现有的组策略对象,用鼠标右键单击 策略文档对象,然后选择 编辑。此时将显示一个新组策略对象编辑器 Microsoft 管理控制台 (MMC)。
  5. 服务名称 列中双击 SQL Server (Instance_Name)
  6. SQL Server (Instance_Name) 属性 对话框中单击以选中 定义这个策略设置 复选框,选择适当的启动模式然后单击 编辑安全
  7. SQL Server (Instance_Name) 的安全性 对话框中单击 组或用户名称 下的 网络服务

    注意如果未列出网络服务帐户,则请在执行此步骤之前添加该帐户。
  8. 网络服务的权限,下单击以选中 允许 列中的 读取 复选框,然后单击 确定
  9. 重复步骤 5 到 9,添加到其他 SQL Server 2005 的服务的网络服务帐户的读取权限。

更多信息

我们有一种很好的做法,若要避免此问题。在应用安全策略时, 始终确保 SQL Server 2005 服务在默认随机访问控制列表 (DACL) 不会更改。可以将帐户或组添加到 SQL Server 2005 的服务安全设置上,如果您希望该帐户或组有权查询服务信息。

您可以提取 SQL Server 2005 服务在默认的 DACL 的信息的命令提示符处运行以下命令:
sc \\[servername] sdshow SQLService_Name
当您运行 SQL Server 配置管理器工具或 SQL Server 2005 外围应用配置工具时,这些工具将在内部创建 ManagedComputer SQL Server 管理对象 (SMO) 类的实例。这些工具循环访问的服务集合以获取有关 SQL Server 2005 服务信息。当这些工具循环访问的服务集合时,这些工具将生成以下 Windows 管理规范 (WMI) 查询:
  • SELECT * FROM RegServices
  • SELECT * FROM SqlService
当这些工具生成 WMI 查询时,SQL Server Web-Based 企业管理 (WBEM) 提供程序 (Sqlmgmprovider.dll) 是加载到 Wmiprvse.exe 过程。然后,SQL Server WBEM 提供程序提取和处理有关 SQL Server 2005 年每个实例的服务信息。该信息是有关以下 SQL Server 2005 服务:
  • SQL Server 数据库引擎服务
  • $ SQL Server 2005 报告服务的服务
  • SQL Server 2005 全文搜索服务
  • SQL Server 2005 代理服务
  • $ SQL Server 2005 集成服务的服务
  • SQL Server 2005 Analysis Services 服务
最后,ManagedComputer SMO 对象返回 SQL Server 2005 的服务列表,这些工具。

Wmiprvse.exe 进程在其中加载 Sqlmgmprovider.dll 文件将在网络服务帐户的安全上下文中运行。Wmiprvse.exe 过程中一个线程执行 Sqlmgmprovider.dll 文件中的代码。您在运行这些工具时 Wmiprvse.exe 进程中的此线程将模拟的用户运行这些工具的安全上下文。



此外,SQL Server 2005 的某些服务有关的信息仍然提取网络服务帐户的安全上下文。如果网络服务帐户中有权限不足,无法提取服务信息 SQL Server 2005 服务的信息不在该结果集供以前提到的 WMI 查询。因此,ManagedComputer SMO 对象返回空列表或 $ SQL Server 2005 的服务的部分列表对这些工具。

参考

ManagedComputer 类有关的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.wmi.managedcomputer.aspx
有关 QueryServiceConfig 函数的详细信息,请访问下面的 MSDN 网站:
http://msdn2.microsoft.com/en-us/library/ms684932.aspx
有关 WMI 的详细信息,请访问下面的 MSDN 网站:
http://msdn2.microsoft.com/en-us/library/aa394572.aspx

属性

文章编号: 941823 - 最后修改: 2010年2月9日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
关键字:?
kbmt kbsql2005tool kbexpertiseadvanced kbtshoot kbprb KB941823 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 941823
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,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