Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
База данных SQL в Microsoft Fabric
Программа массового копирования (bcp) поддерживает несколько моделей аутентификации Microsoft Entra ID при подключении к базе данных SQL Azure, управляемому экземпляру SQL Azure, базе данных SQL в Microsoft Fabric, Azure Synapse Analytics или SQL Server 2022 (16.x) и более поздних версиях.
Чтобы проверить, поддерживает ли установленная служба bcp проверку подлинности Microsoft Entra, запустите bcp --help и убедитесь, что -G отображается в списке доступных аргументов.
Ограничения платформы
Не все режимы проверки подлинности доступны на каждой платформе:
Интерактивная проверка подлинности Microsoft Entra поддерживается только в Windows.
Для интегрированной проверки подлинности Microsoft Entra в Linux и macOS требуется Microsoft ODBC Driver 18 для SQL Server (драйвер 17.6.1 или более поздней версии, если вы не можете перейти к драйверу 18) и правильно настроенной среде Kerberos.
Проверка подлинности с помощью файла маркера доступа (
-P <token_file>) поддерживается только в Linux и macOS.
Имя пользователя и пароль Microsoft Entra
Укажите -G вместе -U (имя пользователя) и -P (пароль).
В следующем примере таблица bcptest экспортируется из базы данных testdb на contoso.database.windows.net в файл c:\last\data1.dat. Замените <password> допустимым паролем.
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
В следующем примере импортируются те же данные:
bcp bcptest in "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com -P <password>
Интегрированная Microsoft Entra
Укажите -G без -U или -P. Текущая учетная запись Windows (или удостоверение Kerberos в Linux/macOS) должна быть объединена с Microsoft Entra ID. В следующих примерах замените <server> на имя вашего сервера.
Экспорт:
bcp bcptest out "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Импорт:
bcp bcptest in "c:\last\data2.dat" -S <server>.database.windows.net -d testdb -G -c
Удостоверение управляемой службы Microsoft Entra
Проверка подлинности как назначаемого системой или назначаемого пользователем управляемого удостоверения с помощью настроенного имени DSN. Один и тот же подход работает для обоих bcp in и bcp out.
Important
bcp тесно связан с его драйвером. Основная версия bcp должна соответствовать основной версии драйвера, с которым создается DSN. Чтобы определить версию bcp , выполните команду bcp -v.
Настройте DSN с помощью администратора источника данных ODBC:
- Нажмите клавишу Windows на клавиатуре.
- Введите
ODBCи выберите соответствующую версию администратора источника данных ODBC. - Выберите вкладку Пользовательская DSN или Системная DSN.
- Нажмите кнопку "Добавить " и следуйте инструкциям.
- Когда вас попросят указать тип проверки подлинности, выберите проверку подлинности управляемого удостоверения службы Azure.
- Для управляемого идентификатора, назначаемого пользователем, вставьте
Object (principal) IDидентификатор в поле идентификатора входа на вкладке аутентификации. - Продолжайте следовать инструкциям, чтобы завершить настройку DSN.
Полное пошаговое руководство, включая снимки экрана, см. в разделе "Создание и редактирование доменных сетей" в пользовательском интерфейсе.
Используйте флаг -D, чтобы указать, что значение, передаваемое в -S, является DSN. Переключатели -D и -S могут располагаться в любом порядке в командной строке.
bcp bcptest out "c:\last\data1.dat" -c -D -S myDSN -d testdb
Токен доступа Microsoft Entra ID
Применяется только к Linux и macOS. Windows не поддерживается.
bcp 17.8 и более поздние версии на Linux и macOS могут аутентифицироваться с помощью токена доступа. В следующих примерах Azure CLI будет использоваться для получения токена и записи его в безопасный временный файл.
Important
Файл маркера должен быть в формате UTF-16LE без BOM. Ограничить разрешения файлов и удалить файл, если он больше не нужен, как показано в следующих примерах.
Системно назначенная управляемая идентичность
Замените <server> именем сервера.
Войдите в систему, используя управляемую учетную запись
az login --identityПолучите маркер, напишите его в безопасный временный файл и запустите bcp:
# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Управляемая идентификация, назначаемая пользователем
Войдите, используя управляемую учетную запись, назначенную пользователем. Замените
<client_id>допустимым значением для вашей среды.az login --identity --username <client_id>Получите маркер, напишите его в безопасный временный файл и запустите bcp. Замените
<server>допустимым значением для вашей среды.# Create a secure temporary file for the token tokenFile=$(mktemp) chmod 600 "$tokenFile" # Retrieve the access token and write it as UTF-16LE without BOM az account get-access-token --resource https://database.windows.net --output tsv | cut -f 1 | tr -d '\n' | iconv -f ascii -t UTF-16LE > "$tokenFile" # Run bcp with the token file bcp bcptest out data2.dat -S <server>.database.windows.net -d testdb -G -P "$tokenFile" -c # Clean up token file rm -f "$tokenFile"
Интерактивный Microsoft Entra
Применяется только к Windows. Linux и macOS не поддерживаются.
Интерактивная проверка подлинности Microsoft Entra использует диалоговое окно для проверки подлинности и поддерживает многофакторную проверку подлинности (MFA). Для интерактивной проверки подлинности требуется bcpверсии 15.0.1000.34 или более поздней версии, а драйвер ODBC 18 для SQL Server (или драйвер 17.2 или более поздней версии).
-G Укажите -U только (имя пользователя). Не включайте -P.
bcp запрашивает пароль (или для учетных записей с поддержкой MFA выполняет настроенный процесс MFA).
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U alice@contoso.onmicrosoft.com
Для учетной записи Windows пользователя Microsoft Entra из федеративного домена добавьте домен в имя пользователя (например, joe@contoso.com):
bcp bcptest out "c:\last\data1.dat" -c -S contoso.database.windows.net -d testdb -G -U joe@contoso.com
Если гостевые пользователи в клиенте Microsoft Entra являются частью группы с разрешениями базы данных в Базе данных SQL Azure, используйте псевдоним гостевого пользователя (например, keith0@adventure-works.com).
Связанный контент
- утилита bcp
- Скачивание и установка служебной программы bcp
- Использование служебной программы bcp
- Проверка подлинности Microsoft Entra для SQL Azure
- Аутентификация в базе данных SQL в Microsoft Fabric
Получите помощь
- Идеи для SQL: у вас есть предложения по улучшению SQL Server?
- Вопросы и ответы по продуктам Майкрософт (SQL Server)
- DBA Stack Exchange (тег sql-server): вопросы о SQL Server
- Stack Overflow (тег sql-server): ответы на вопросы о разработке SQL
- Условия и информация о лицензии Microsoft SQL Server
- Варианты поддержки для бизнес-пользователей
- Дополнительная помощь и отзывы о SQL Server
Примите участие в разработке документации по SQL
Знаете ли вы, что содержимое SQL можно изменить самостоятельно? При этом вы не только помогаете улучшить нашу документацию, но и получаете признание в качестве участника страницы.
Дополнительные сведения см. в разделе Редактирование документации Microsoft Learn.