晚上好,
我有一个T-SQL存储过程,它通过OPENQUERY从Analysis Services服务器执行PREDICTION JOIN查询。
当我手动执行存储过程时,它会成功完成并更新数据库中的相关表。
但是,我每天早上都有存储过程作为预定作业运行。调用作业时,它失败并显示以下错误消息:
以用户身份执行:NT SERVICE \ SQLSERVERAGENT。无法初始化 OLE DB提供程序的数据源对象" MSOLAP"用于链接服务器 " ANALYSIS_SERVICES&#34 ;. [SQLSTATE 42000](错误7303)OLE DB提供程序 " MSOLAP"对于链接服务器" ANALYSIS_SERVICES"返回消息 "用户NT SERVICE \ SQLSERVERAGENT没有 访问Analysis数据库或数据库不存在。"。 [SQLSTATE 01000](错误7412)。步骤失败了。
我认为它有一些与SQLServerAgent权限有关的东西......我已经尝试将自己设置为自己作为所有者希望这将提供相关权限,尽管这并不起作用。
在那之后,我完全没有想法......不幸的是,我对服务器角色和权限的理解相当有限,任何帮助都会受到高度赞赏。
答案 0 :(得分:0)
有几种可能的解决方案:
创建一个链接服务器连接,模拟在SSAS实例中具有权限的帐户。
创建代理帐户并在代理上下文中执行代码。代理可以是在SSAS实例中具有权限的帐户。使用代理执行作业步骤。如果作业步骤是T-SQL命令,则将代码移动到SSIS包并将包作为代理运行。
更改SQL Server代理以使用域帐户。授予SSAS实例中域帐户的权限。