【发布时间】:2020-11-04 00:30:59
【问题描述】:
我正在尝试将 SSIS 包从 Visual Studio 2019 部署到 MS SQL Server 2016,我遇到了如下所示的部署错误:
““在执行用户定义的例程或聚合“deploy_project_internal”期间发生 .NET Framework 错误:System.ComponentModel.Win32Exception:客户端未持有所需的权限。”
经过几个小时的调试发现错误其实是来自SQL Server。 SQL Server 无法从 SSISDB“[catalog].[check_schema_version]”运行存储过程。
因此,我们意识到运行 SQL Server 的当前服务帐户具有某些特权。因此,我们创建了一个新的本地管理员帐户并提供了所有权限。
• 根据 Microsoft 的建议,我们在以下配置中添加了 SQl 服务器服务帐户和 SQL 服务器集成服务帐户: o 编辑了 DCOM 配置属性并提供了以下组件服务的本地启动和本地激活权限
Microsoft SQL Server Integration Services 11.0、Microsoft SQL Server Integration Services 12.0 和 Microsoft SQL Server Integration Services 13.0
o 我们进一步扩展了两个服务帐户的权限,如下所示:
Log on as a service .
Permission to write to application event log.
Impersonate a client after authentication.
Adjust memory quotas for a process
以下是尚未添加的两个组策略:
Bypass traverse checking
Replace a process-level token
我想知道这是否能解决问题,并请提出我们在此处遗漏的任何内容来解决问题。
【问题讨论】:
-
如果你创建一个 SSIS 项目的“hello world”级别和类似级别的包,将它部署到服务器,它工作吗?这可以帮助消除它是否特定于您部署的项目或更一般的东西。是否有其他 SSIS 项目在此服务器上部署和运行?这个未能部署的新项目是否专门针对 SQL Server 2016?默认设置为 2019 年。
-
Billink,感谢检查,我试图部署的是一个简单的 SSIS 包。服务器上没有部署其他项目。这是我们第一次尝试将 SSIS 包部署到 SQL Server 上。 SSDT 工具与安装的 SQL Server 匹配。如前所述,在 sql server 中运行 check schema version 存储过程时也是如此
标签: sql sql-server deployment ssis service-accounts