简体   繁体   English

SQL Server无法执行SSIS包

[英]SQL Server unable to execute SSIS packages

I have upgraded SQL Server from 2012 to 2014, but now I am unable to run SSIS packages, I get an error: 我已将SQL Server从2012年升级到2014年,但是现在我无法运行SSIS包,出现错误:

unable to execute xp_regread procedure" 无法执行xp_regread过程”

I am part of sysadmin role. 我是sysadmin角色的一部分。

I have tried to explicitly grant permission for me but I get the same error. 我试图为我明确授予权限,但出现相同的错误。

The issue fixed by http://support.microsoft.com/kb/2720171/en-us (which does not require the latest CU) has a specific cause: http://support.microsoft.com/kb/2720171/zh-cn (不需要最新的CU)解决的问题有特定的原因:

"This issue occurs because of the way Integration Services executes packages stored in SSISDB in SQL Server 2012 environments." “发生此问题是由于Integration Services在SQL Server 2012环境中执行SSISDB中存储的程序包的方式。”

Translated, that means Microsoft failed to ensure the "Executed as user: DOMAIN|USER" was given permission to run XP_REGREAD. 已翻译,这意味着Microsoft无法确保已授予“以用户身份执行:DOMAIN | USER”运行XP_REGREAD的权限。

That doesn't mean every user must be given permission to run XP_REGREAD. 这并不意味着必须授予每个用户运行XP_REGREAD的权限。 That means every user, even if they were supposed to have permission to run XP_REGREAD, was unable to run XP_REGREAD (hence the bug, hence the fix). 这意味着即使每个用户都应该有权运行XP_REGREAD,他们也无法运行XP_REGREAD(因此,该错误也随之而来)。

Check the following: 检查以下内容:

  1. Do all packages fail or is it that just this package fails? 所有软件包都会失败还是仅仅是这个软件包失败?
  2. Search the package's T-SQL steps (if any) for the presence of "xp_regread". 搜索程序包的T-SQL步骤(如果有),以查找是否存在“ xp_regread”。
  3. Logon as user: xxxx (or SETUSER) and try to run xp_regread. 以用户xxxx(或SETUSER)身份登录,然后尝试运行xp_regread。 3a. 3a。 Can the package be run manually (outside of a scheduled job)? 程序包可以手动运行(在预定作业之外)吗? 3b. 3b。 Review the permissions and role membership of user: xxxx in SQL Server 2012 (if still available) or temporarily make the user a sysadmin (for testing purposes). 查看用户的权限和角色成员身份:SQL Server 2012中的xxxx(如果仍然可用),或临时使用户成为sysadmin(出于测试目的)。
    1. If a SQL Server login, ensure the sys.database_principals for "user: xxxx" maps to the correct sys.server_principals by SID (and use sp_change_users_login if it doesn't). 如果是SQL Server登录名,请确保SID将“ user:xxxx”的sys.database_principals映射到正确的sys.server_principals(如果没有,则使用sp_change_users_login)。
    2. Ensure the SQL Server Agent is a member of SQL Server's sysadmin role. 确保SQL Server代理是SQL Server的sysadmin角色的成员。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM