创建 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 目标组件。
将“创建全局对象”用户分配到该帐户后,使用不是本地管理员组成员的帐户。 为此,请按照下列步骤操作:
单击
“开始
”,指向
“管理工具
”,然后单击
“本地安全策略
”。
展开
本地策略
,然后单击
“用户权限分配
”。
在右窗格中,双击
“创建全局对象
”。
在“
本地安全策略设置”
对话框中,单击
“添加
”。
在“
选择用户
或
组
”对话框中,单击要添加的用户帐户,单击
“添加
”,然后单击
“确定
”。
单击
“确定”。