SQL Server 代理作业不执行 SSIS 包权限错误
Posted
技术标签:
【中文标题】SQL Server 代理作业不执行 SSIS 包权限错误【英文标题】:SQL Server Agent Job doesn't execute SSIS package Permission Error 【发布时间】:2021-07-09 07:32:47 【问题描述】:我正在尝试将 SSIS 包(上传文件)运行到我的 SQL Server 数据库。 在 SSIS 中创建 SSIS 包后,它会保存到 SSMS 上的文件夹中。 我的设置如下:
我基本上拥有此实例的所有管理员权限。 当我尝试运行该软件包时,我遇到了一个失败的说法:
04/14/2021 10:05:27,Testing SSIS,Error,1,XXXX\INSTANCE04,Testing SSIS,Upload,,Non-SysAdmins 被拒绝在没有代理帐户的情况下运行 ANALYSISCOMMAND 作业步骤的权限。步骤失败
有时也会出现这个错误:
04/14/2021 10:05:27,Testing SSIS,Error,1,XXXX\INSTANCE04,Testing SSIS,Upload,,Non-SysAdmins 已被拒绝运行 DTS 执行作业步骤的权限没有代理帐户。步骤失败
我计划稍后在此作业中运行多个包 如果有人可以提供帮助,我将不胜感激!
【问题讨论】:
代理任务不在您的凭据下运行,它们在代理服务帐户下运行;这不应该是sysadmin
。但是,该错误告诉您在此处做什么... “非系统管理员已被拒绝在没有代理帐户的情况下运行 ANALYSISCOMMAND 作业步骤的权限”
@Larnu 好的,感谢您的澄清,所以我不能使用 Windows 凭据登录?有解决办法吗?
" 所以我无法使用 Windows 凭据登录" 我根本没这么说;事实上,SSIS 包必须在 SSISDB 中的 Windows 身份验证下运行。
@Larnu 好的,抱歉,我不确定解决问题的最佳方法是什么
【参考方案1】:
您似乎正在处理一个分析服务模型或多维数据集。要解决此问题,请尝试以下操作:
1- 添加凭据(在 SQL Server 中存储 Windows 帐户凭据)
2- 添加代理并授予其处理 SSAS 命令和运行 ssis 包的权限
3- 向凭证中使用的帐户授予权限以处理 SSAS 模型或 立方体
4- 将作业配置为在新的代理帐户下运行
USE [master];
GO
CREATE CREDENTIAL [<domain\user>]
WITH
IDENTITY = N'<domain\user>'
, SECRET = N'<password>';
GO
USE [msdb];
GO
EXEC dbo.sp_add_proxy
@proxy_name = N'SSAS_Processor'
, @credential_name = N'<domain\user>'
, @enabled = 1;
GO
EXEC dbo.sp_grant_proxy_to_subsystem
@proxy_name = N'SSAS_Processor'
, @subsystem_id = 10; --ssas command
GO
EXEC dbo.sp_grant_proxy_to_subsystem
@proxy_name = N'proxy'
, @subsystem_id = 11; --ssis package
GO
配置工作:
【讨论】:
谢谢你。在这篇文章之后,我设法使用与上述类似的代码创建了一个代理。但是我的凭据权限似乎有问题。我使用的是正确的帐户,凭据创建甚至会自动填充我的详细信息 @pandasman,您是无法创建凭证还是有其他错误可以分享?以上是关于SQL Server 代理作业不执行 SSIS 包权限错误的主要内容,如果未能解决你的问题,请参考以下文章
从SQL Server代理作业步骤调用时,SSIS包不会运行