Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: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.