2015-06-21 155 views
0

我已经升级的SQL Server 2012至2014年,但现在我无法运行SSIS包,我得到一个错误:SQL服务器无法执行SSIS包

unable to execute xp_regread procedure"

我的sysadmin角色的一部分。

我试图明确授予我的权限,但我得到了同样的错误。

+0

您可能是系统管理员,但实际执行SSIS软件包的帐户呢?如果您在此[论坛](http://www.sqlservercentral.com/Forums/Topic1601578-3411-1.aspx)上很好地将EXECUTE授予了xp_regread, – billinkc

回答

0

http://support.microsoft.com/kb/2720171/en-us固定(这并不需要最新的CU)问题有一个具体原因:

"This issue occurs because of the way Integration Services executes packages stored in SSISDB in SQL Server 2012 environments."

翻译,这意味着微软未能确保“作为用户执行:DOMAIN | USER”被赋予运行XP_REGREAD的权限。

这并不意味着每个用户都必须获得运行XP_REGREAD的权限。这意味着每个用户,即使他们应该拥有运行XP_REGREAD的权限,都无法运行XP_REGREAD(因此是bug,因此也是修复)。

检查以下内容:

  1. 是否所有的包失败,或者是它只是这个包不成?
  2. 搜索程序包的T-SQL步骤(如果有的话)是否存在“xp_regread”。
  3. 以用户身份登录:xxxx(或SETUSER)并尝试运行xp_regread。 3)。包是否可以手动运行(在预定作业之外)? 3b。查看SQL Server 2012中用户:xxxx的权限和角色成员资格(如果仍然可用)或暂时将用户设置为系统管理员(用于测试目的)。
    1. 如果SQL Server登录,请确保sys.database_principals for“user:xxxx”通过SID映射到正确的sys.server_principals(如果没有,则使用sp_change_users_login)。
    2. 确保SQL Server代理是SQL Server的sysadmin角色的成员。