Не удается подготовить массовую вставку служб SSIS для вставки данных в системах с поддержкой контроля учетных записей

Эта статья поможет устранить проблему, возникающую при попытке запустить пакет служб SSIS в системах, где включен контроль учетных записей пользователей (UAC).

Оригинальная версия продукта: SQL Server
Исходный номер базы знаний: 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.

Примечание.

Эта ошибка не появится при запуске пакета в учетной записи встроенного администратора, созданной во время установки операционной системы. Но вы получите это сообщение для всех других пользователей, включая тех, кто является членами группы локальных администраторов.

Проблема не возникает при выполнении того же пакета служб SSIS, что и агент SQL Server задание.

После установки sql 2008 с пакетом обновления 2 (SP2 ) текст ошибки DTS_E_BULKINSERTAPIPREPARATIONFAILED (0xC0202071) был изменен на: Не удается выполнить массовое копирование данных. Может потребоваться запустить этот пакет от имени администратора.

Это изменение было внесено в попытку упростить понимание необходимых действий по исправлению, как описано в разделе разрешения этого базы знаний.

Причина

В системах, где включен контроль учетных записей, когда приложение (например, SSIS) запускается учетной записью, которая входит в группу администраторов, оно получает два маркера безопасности: один маркер с низким уровнем привилегий, а другой маркер с повышенными привилегиями. Маркер с повышенными привилегиями используется только в том случае, если приложение явно запускается под учетной записью администратора, выбрав параметр Запуск от имени администратора . По умолчанию службы SSIS всегда используют маркер с низким уровнем привилегий, что приводит к сбою при подключении к назначению SQL.

Разрешение

Чтобы обойти проблему, используйте один из следующих методов:

  • Если пакет выполняется из SQL Server Management Studio (SSMS) или Студии разработки бизнес-аналитики (BIDS) или DTExecUI.exe, запустите эти средства под учетной записью администратора с повышенными привилегиями. Для этого нажмите кнопку Пуск, выберите пункт Все программы, SQL Server 2005 или SQL Server 2008, щелкните правой кнопкой мыши используемое средство и выберите запуск от имени администратора. При этом приложение запускается с повышенными привилегиями встроенной учетной записи администратора, и пакет успешно выполняется.

    Аналогично, если вы запускаете пакет с помощью DTExec.exe запустите его из командной строки с повышенными привилегиями. Командную строку с повышенными привилегиями можно запустить, нажав кнопку Пуск, все программы, стандартные, щелкните правой кнопкой мыши командную строку и выберите запуск от имени администратора.

    Примечание.

    Если вы не входите на компьютер с правами администратора, вам будет предложено указать учетную запись администратора. Когда вам будет предложено указать учетную запись администратора, введите имя и пароль администратора в диалоговом окне Контроль учетных записей пользователей . Нажмите кнопку ОК.

  • Замените компоненты назначения SQL Server в задачах потока данных, которые завершаются сбоем, на компоненты назначения OLE DB, указывающие на тот же SQL Server диспетчер соединений.

  • Используйте учетную запись, которая не является членом локальной группы администраторов после назначения ей права пользователя на создание глобальных объектов. Для этого выполните следующие действия:

    1. Нажмите кнопку Пуск, выберите Администрирование, а затем — Локальная политика безопасности.
    2. Разверните узел Локальные политики и щелкните Назначение прав пользователя.
    3. В правой области дважды щелкните Создать глобальные объекты.
    4. В диалоговом окне Параметр локальной политики безопасности нажмите кнопку Добавить.
    5. В диалоговом окне Выбор пользователей или групп выберите учетные записи пользователей, которые нужно добавить, нажмите кнопку Добавить, а затем нажмите кнопку ОК.
    6. Нажмите кнопку OK.

Примечание.

При использовании учетной записи, которая не входит в локальную группу администраторов, контроль учетных записей не выполняется.

Дополнительная информация