从 SQL 服务器上的作业处理数据立方体

Ric*_* S. 2 sql-server ssas sql-server-2014

我在服务器(X)上有一个 SQL Server 代理作业,它有一个步骤应该处理远程服务器(Y)上的数据立方体。

每当我运行该作业时,它都会失败并说 server(X) 无权处理 Cube 或它不存在。我相信我的作业设置正确,但是如何将服务器(Y)上的访问权限授予服务器(X)以处理多维数据集?下面是我正在使用的脚本。使用“SQL Server 分析服务命令”

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400">
<Object>
  <DatabaseID>Analysis Services Project1</DatabaseID>
  <CubeID>S2E</CubeID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Batch>
Run Code Online (Sandbox Code Playgroud)

当我通过对象资源管理器将服务器(x)添加到服务器(Y)上的管理员角色时,我无法通过检查名称按钮找到服务器。请帮忙。

我正在使用 SQL Server 2014

Tom*_*m V 5

有两种方法可以解决这个问题。您可以为 sql 代理服务创建一个服务帐户并在 olap 服务器上授予该帐户权限,也可以创建一个 sql 代理proxy account

我个人认为代理帐户是最干净的解决方案。

要创建代理帐户,请参阅此 msdn 文章:创建 SQL Server 代理代理

例如,您可以通过这种方式创建一个DOMAIN\OlapUserOnY仅用于在 Y 服务器 Analysis Services 上运行事物的代理作业的用户。

如果要创建服务帐户,您必须是运行代理的 SQL 服务器上的系统管理员,才能在代理作业上进行配置。

然后在代理作业上,您只需在run as字段中选择代理帐户或服务帐户。

请参阅创建 Analysis Services 作业步骤以了解如何创建作业并指定它在其下运行的帐户。

从该链接:

在“运行方式”列表中,选择已定义为使用 Analysis Services 命令子系统的代理。作为 sysadmin 固定服务器角色成员的用户也可以选择 SQL 代理服务帐户来运行此作业步骤。