【发布时间】:2014-06-15 21:53:01
【问题描述】:
晚上好,
我有一个 T-SQL 存储过程,它通过 OPENQUERY 从 Analysis Services 服务器执行 PREDICTION JOIN 查询。
当我手动执行存储过程时,它会成功完成并更新我数据库中的相关表。
但是,我每天早上都将存储过程作为计划作业运行。调用作业时,它会失败并显示以下错误消息:
以用户身份执行:NT SERVICE\SQLSERVERAGENT。无法初始化 链接服务器的 OLE DB 提供程序“MSOLAP”的数据源对象 “分析服务”。 [SQLSTATE 42000](错误 7303)OLE DB 提供程序 链接服务器“ANALYSIS_SERVICES”的“MSOLAP”返回消息 “用户 NT SERVICE\SQLSERVERAGENT 没有 访问分析数据库或数据库不存在。”。 [SQLSTATE 01000](错误 7412)。步骤失败。
我认为它因此与 SQLServerAgent 权限有关...我已尝试将自己设置为所有者,希望这将提供相关权限,尽管这不起作用。
在那之后,我完全没有想法......不幸的是,我对服务器角色和权限的理解相当有限,非常感谢任何帮助。
【问题讨论】:
-
您可以尝试将其作为“sa”运行吗?
-
您的主体
NT SERVICE\SQLSERVERAGENT需要ANALYSIS_SERVICES服务器上的权限。 -
您运行代理的帐户是否存在于链接服务器上,并且具有适当的权限? (@Zak,MSAS 需要 Windows 身份验证,而不是 SQL Server。)
-
谢谢大家的回复...我真的不知道如何向 Analysis_Services 服务器添加权限?似乎没有添加对象本身的选项?我相信链接服务器上确实存在该帐户...我运行了 EXEC sp_addlinkedsrvlogin 'Analysis_Services' 、 'FALSE' 、 'NT SERVICE\SQLSERVERAGENT' 命令,应该这样做吗?
标签: sql-server tsql stored-procedures service analysis