我有一个 SQL 作业,它运行一个 VB 脚本,该脚本使用 Microsoft Excel DCOM 应用程序提供的对象。Excel 2003 已安装并运行。SQL Server 和 SQL 代理均在 mydomain\thataccount 下运行。
错误是:
计算机默认权限设置未向地址 LocalHost(使用 LRPC)的用户 mydomain\thataccount SID 授予 CLSID 为 {00024500-0000-0000-C000-000000000046} 的 COM 服务器应用程序的本地激活权限。可以使用组件服务管理工具修改此安全权限。
以下发现使这一问题变得困难。
mydomain\thataccount 对组件服务 DOC 配置中的 DCOM 应用程序具有完全的启动和激活权限、访问权限和配置权限。
(上面的)错误表明它不存在。
如果我授予“每个人”所有类型的完全访问权限,则错误不会改变。
如果我让 SQL 代理在另一个帐户 (mydomain\otheraccount) 下运行,错误仍然会抱怨 mydomain\thataccount 没有权限。显然,该作业是在 SQL Server 凭据下运行的,而不是在 SQL 代理凭据下运行的。
我没有更改 SQL Server 运行的帐户,因为启动 SQL 配置管理器时出现此错误(可能相关也可能不相关):
无法连接到 WMI 提供程序。您没有权限或无法访问服务器。请注意,您只能使用 SQL Server 配置管理器管理 SQL Server 2005 及更高版本的服务器。无效类 [0x80041010]
如果我将 mydomain\thataccount 添加到本地管理员组并重新启动 SQL Server,工作有效。这意味着管理员有权使用 DCOM 应用程序,但非管理员用户却无权使用,尽管他们被授予了权限。
重申:即使“每个人”都被授予了 DCOM 应用程序的完全访问权限,错误仍然表明 mydomain\thataccount 无权访问 DCOM 应用程序。
有任何想法吗?
(我开始相信 Windows/SQL 安装出了问题。)
Microsoft® Windows Server® 2008 Enterprise 版本:6.0.6002 架构:64 位 状态:正常 总可见物理内存:3,927 MB Windows Service Pack:Service Pack 2
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) 2009 年 3 月 29 日 10:11:52 版权所有 (c) 1988-2008 Microsoft Corporation 企业版 (64 位) Windows NT 6.0 (Build 6002: Service Pack 2)