• 创建 SQL Server Integration Services (在数据流任务中具有SQL Server目标组件的 SSIS) 包。

  • 尝试在启用用户帐户控制 (UAC) ((例如 Vista 或 Windows 7) )的系统上使用以下方法之一运行此包:

  • 商业智能开发工作室 (BIDS)
  • SQL Server Management Studio (SSMS) 对象资源管理器
  • DTExec.exe
  • DTExecUI.exe
  • 在此方案中,可能会收到类似于以下内容的错误消息:

    SQL Server目标]错误:无法准备用于数据插入的 SSIS 批量插入。 [SSIS.管道] 错误:组件“SQL Server目标”在执行前阶段失败,0xC0202071返回错误代码。

    如果在操作系统安装期间创建的内置管理员帐户下运行包,则不会收到此错误。 但是,对于任何其他用户(包括本地管理员组成员的用户)将收到此消息。

    执行与SQL Server 代理作业相同的 SSIS 包时,不会出现问题。

    安装 SQL 2008 Service Pack 2 后,错误 DTS_E_BULKINSERTAPIPREPARATIONFAILED (0xC0202071) 的文本已更改为: 无法批量复制数据。可能需要以管理员身份运行此包。

    进行此更改是为了更轻松地理解所需的纠正措施,如此 KB 的解析部分所述。

    在启用 UAC 的系统上,当作为管理员组成员的帐户启动应用程序 ((例如 SSIS) )时,它将获得两个安全令牌,一个为低特权令牌,另一个为提升的令牌。 仅当应用程序通过选择 “以管理员身份运行 ”选项在管理员帐户下显式运行时,才会使用提升的令牌。 默认情况下,SSIS 始终使用低特权令牌,导致连接到 SQL 目标时失败。

    使用以下方法之一来解决此问题:

  • 如果从 SQL Server Management Studio (SSMS) 或商业智能开发工作室 (BIDS) 或DTExecUI.exe运行包,请在提升的管理员帐户下启动这些工具。 为此,请单击 “开始 ”,指向 “所有程序 ”,指向 SQL Server 2005 或 2008 SQL Server ,右键单击正在使用的工具,然后单击 “以管理员身份运行 ”。 这会启动具有内置管理员帐户提升权限的应用程序,并且包成功执行。

    同样,如果使用DTExec.exe运行包,请从提升的命令提示符启动它。 可以通过单击“ 开始 ”、“ 单击所有程序 ”、“ 附件 ”、“右键单击 命令提示符 ”,然后单击 “以管理员身份运行” 来启动提升的命令提示符。

    如果未以管理员身份登录到计算机,系统会提示你提供管理员帐户。 当系统提示你提供管理员帐户时,请在“ 用户帐户控制 ”对话框中键入管理员用户名和密码。 再单击“确定”

  • 将数据流任务中失败的SQL Server目标组件替换为指向同一SQL Server连接管理器的 OLE DB 目标组件。

  • 将“创建全局对象”用户分配到该帐户后,使用不是本地管理员组成员的帐户。 为此,请按照下列步骤操作:

  • 单击 “开始 ”,指向 “管理工具 ”,然后单击 “本地安全策略 ”。
  • 展开 本地策略 ,然后单击 “用户权限分配 ”。
  • 在右窗格中,双击 “创建全局对象 ”。
  • 在“ 本地安全策略设置” 对话框中,单击 “添加 ”。
  • 在“ 选择用户 ”对话框中,单击要添加的用户帐户,单击 “添加 ”,然后单击 “确定 ”。
  • 单击 “确定”。
  •