共用方式為


無法準備 SSIS 大量插入,以在啟用 UAC 的系統上插入數據

本文可協助您解決當您嘗試在啟用用戶帳戶控制 (UAC) 的系統上執行 SSIS 套件時所發生的問題。

原始產品版本:SQL Server
原始 KB 編號: 2009672

徵兆

請參考下列案例:

  • 您可以建立 SQL Server Integration Services (SSIS) 套件,其具有數據流工作內的 SQL Server 目的地元件。

  • 您嘗試在啟用使用者帳戶控制 (UAC) 的系統上執行此套件(例如 Vista 或 Windows 7),方法是使用下列其中一種方法:

    • Business Intelligence Development Studio (BIDS)
    • SQL Server Management Studio (SSMS) 物件總管
    • DTExec.exe
    • DTExecUI.exe

在此案例中,您可能會收到類似下列的錯誤訊息:

SQL Server 目的地] 錯誤:無法準備 SSIS 大量插入以進行數據插入。 [SSIS.管線] 錯誤:元件 「SQL Server 目的地」 無法執行前階段,並傳回錯誤碼0xC0202071。

注意

如果您在操作系統安裝期間建立的 Builtin Administrator 帳戶下執行套件,則不會收到此錯誤。 但您會收到此訊息給任何其他使用者,包括屬於本機系統管理員群組成員的使用者。

當您執行與 SQL Server Agent 作業相同的 SSIS 套件時,不會發生此問題。

安裝 SQL 2008 Service Pack 2 之後,錯誤 DTS_E_BULKINSERTAPIPREPARATIONFAILED (0xC0202071) 的文字已變更為: 無法大量複製數據。您可能需要以系統管理員身分執行此套件。

這項變更是為了讓您更輕鬆地瞭解所需的更正動作,如此 KB 的解決一節所述。

原因

在啟用 UAC 的系統上,當應用程式(例如 SSIS)由屬於 Administrators 群組成員的帳戶啟動時,它會取得兩個安全性令牌,一個是低許可權令牌,另一個是提高許可權的令牌。 只有在應用程式藉由選擇 [以系統管理員 身分執行] 選項,明確地在系統管理員帳戶下執行時,才會使用提高許可權的令牌。 根據預設,SSIS 一律會使用低許可權令牌,導致連線到 SQL 目的地時失敗。

解決方法

使用下列其中一種方法來解決此問題:

  • 如果您是從 SQL Server Management Studio (SSMS) 或 Business Intelligence Development Studio (BIDS) 或 DTExecUI.exe 執行套件,請在提高許可權的系統管理員帳戶下啟動這些工具。 若要這樣做,請按兩下 [開始]、指向 [所有程式]、指向 [SQL Server 2005 ] 或 [SQL Server 2008],以滑鼠右鍵按下您使用的工具,然後按兩下 [ 以系統管理員身分執行]。 這會啟動具有內建系統管理員帳戶較高許可權的應用程式,且套件會順利執行。

    同樣地,如果您使用 DTExec.exe從提升許可權的命令提示字元啟動封裝。 您可以按兩下 [開始]、按兩下 [所有程式]、[附屬程式]、以滑鼠右鍵按兩下 [命令提示字元],然後按兩下 [以系統管理員身分執行],以啟動提升許可權的命令提示字元

    注意

    如果您未以系統管理員身分登入計算機,系統會提示您提供系統管理員帳戶。 當系統提示您提供系統管理員帳戶時,請在 [使用者帳戶控制] 對話框中輸入系統管理員使用者名稱和密碼。 然後按一下 [確定]

  • 以指向相同 SQL Server 連接管理員的 OLE DB 目的地元件取代數據流工作中的 SQL Server 目的地元件。

  • 將建立全域對象用戶權力指派給該帳戶之後,請使用不是本機 Administrators 群組成員的帳戶。 若要這樣做,請遵循下列步驟:

    1. 按兩下 [開始],指向 [ 系統管理工具],然後按兩下 [ 本機安全策略]。
    2. 展開 [ 本機原則],然後按兩下 [ 用戶權力指派]。
    3. 在右窗格中,按兩下 [ 建立全域物件]。
    4. 在 [ 本機安全策略設定 ] 對話框中,按兩下 [ 新增]。
    5. 在 [ 選取使用者群組 ] 對話框中,按兩下您要新增的用戶帳戶,按兩下 [新增],然後按兩下 [ 確定]。
    6. 按一下 [確定]。

注意

使用不是本機 Administrators 群組成員的帳戶時,UAC 不會生效。

其他相關資訊