sql server-从T-sql存储过程执行Analysis Services OpenQuery



晚上好,

我有一个T-SQL存储过程,它通过OPENQUERY从AnalysisServices服务器执行PREDICTIONJOIN查询。

当我手动执行存储过程时,它会成功完成并更新数据库中的相关表。

但是,我每天早上都要将存储过程作为计划作业运行。当调用作业时,它将失败,并显示以下错误消息:

以用户身份执行:NT SERVICE\SQLSERVERAGENT。无法初始化链接服务器的OLE DB访问接口"MSOLAP"的数据源对象"ANALYSIS_SERVICES"。[SQLSTATE 42000](错误7303(OLE DB访问接口链接服务器"ANALYSIS_SERVICES"的"MSOLAP"返回消息"用户NT SERVICE\SQLSERVERAGENT没有对分析数据库或数据库的访问权限不存在。"。[SQLSTATE 01000](错误7412(。步骤失败。

因此,我认为这与SQLServerAgent权限有关。。。我试着将自己设置为所有者,希望这能给我相关的权限,尽管这不起作用。

在那之后,我就没什么想法了。。。不幸的是,我对服务器角色和权限的了解相当有限,如有任何帮助,我们将不胜感激。

有几种可能的解决方案:

  1. 创建一个链接服务器连接,模拟在SSAS实例中具有权限的帐户。

  2. 创建一个代理帐户并在代理上下文下执行代码。代理可以是在SSAS实例中具有权限的帐户。使用代理执行作业步骤。如果作业步骤是T-SQL命令,则将代码移动到SSIS包中,并将该包作为代理运行。

  3. 将SQL Server代理更改为使用域帐户。向SSAS实例中的域帐户授予权限。

相关内容

  • 没有找到相关文章

最新更新