Поделиться через


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

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

Исходная версия продукта: SQL Server
Исходный номер базы знаний: 2009672

Симптомы

Рассмотрим следующий сценарий:

  • Вы создаете пакет служб SQL Server Integration Services (SSIS), имеющий компонент назначения SQL Server в задаче потока данных.

  • Вы пытаетесь запустить этот пакет в системах, где включен контроль учетных записей пользователей (UAC) (например, Vista или Windows 7), используя один из следующих методов:

    • Студия разработки бизнес-аналитики (BIDS)
    • обозреватель объектов SQL Server Management Studio (SSMS)
    • DTExec.exe
    • DTExecUI.exe

В этом сценарии может появиться сообщение об ошибке, аналогичное следующему:

Ошибка назначения SQL Server] Не удалось подготовить массовую вставку служб SSIS для вставки данных. [SSIS. Конвейер] Ошибка: компонент "Назначение SQL Server" завершился сбоем этапа предварительного выполнения и возвращенного кода ошибки 0xC0202071.

Примечание.

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

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

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

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

Причина

В системах, где включенА UAC, когда приложение (например, SSIS) запускается учетной записью, являющейся членом группы "Администраторы", она получает два маркера безопасности, один маркер с низким уровнем привилегий и другой маркер с повышенными привилегиями. Маркер с повышенными привилегиями используется только в том случае, если приложение явно выполняется под учетной записью администратора, выбрав параметр запуска от имени администратора . По умолчанию 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.

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

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

Примечание.

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

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