Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureAzure Synapse Analytics
Система платформы аналитики (PDW)
База данных SQL в предварительной версии Microsoft Fabric
sqlcmd поддерживает различные модели проверки подлинности Microsoft Entra в зависимости от установленной версии.
Note
Хотя Microsoft Entra ID — это новое имя для Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD всё еще используется в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.
Чтобы узнать, какой вариант и версия sqlcmd установлены в системе, см. статью "Проверка установленной версии служебной программы sqlcmd". Сведения о том, как получить sqlcmd, см. в разделе "Скачать и установить служебную программу sqlcmd".
sqlcmd (Go) поддерживает больше моделей проверки подлинности Microsoft Entra на основе пакета azidentity. Реализация использует соединитель Microsoft Entra в драйвере go-sqlcmd.
Аргументы командной строки
Чтобы использовать проверку подлинности Microsoft Entra, можно использовать один из двух коммутаторов командной строки.
-G
(в основном) совместим с его использованием в sqlcmd (ODBC). Если указано имя пользователя и пароль, он проходит проверку подлинности с помощью проверки подлинности паролей Microsoft Entra. Если указано имя пользователя, используется интерактивная аутентификация Microsoft Entra, которая может показывать веб-браузер. Если имя пользователя или пароль не указаны, то используется DefaultAzureCredential
метод, который пытается пройти проверку подлинности с помощью различных механизмов.
Для указания одного из следующих типов проверки подлинности можно использовать --authentication-method=
.
ActiveDirectoryDefault
- Общие сведения о типах проверки подлинности, используемых в этом режиме, см. в разделе "Учетные данные Azure по умолчанию".
- Выберите этот метод, если скрипты автоматизации базы данных предназначены для выполнения как в локальных средах разработки, так и в рабочем развертывании в Azure. В среде разработки можно использовать секрет клиента или имя входа Azure CLI. Без изменения скрипта из среды разработки можно использовать управляемое удостоверение или секрет клиента в рабочем развертывании.
- Установка переменных среды
AZURE_TENANT_ID
иAZURE_CLIENT_ID
необходима дляDefaultAzureCredential
того, чтобы начать проверку конфигурации среды и искать одну из следующих дополнительных переменных среды для аутентификации:- Установка переменной
AZURE_CLIENT_SECRET
среды настраиваетDefaultAzureCredential
для выбораClientSecretCredential
. - Настройка переменной
AZURE_CLIENT_CERTIFICATE_PATH
среды настраиваетDefaultAzureCredential
на выборClientCertificateCredential
, еслиAZURE_CLIENT_SECRET
не задан.
- Установка переменной
- Настройка переменной среды AZURE_USERNAME приводит
DefaultAzureCredential
к выборуUsernamePasswordCredential
, еслиAZURE_CLIENT_SECRET
иAZURE_CLIENT_CERTIFICATE_PATH
не заданы.
ActiveDirectoryIntegrated
Этот метод в настоящее время не реализуется и возвращается в ActiveDirectoryDefault
.
ActiveDirectoryPassword
Этот метод проходит проверку подлинности с помощью имени пользователя и пароля. Он не работает, если требуется многофакторная проверка подлинности.
Вы предоставляете имя пользователя и пароль с помощью обычных коммутаторов командной строки или
SQLCMD
переменных среды.Задайте для переменной среды
AZURE_TENANT_ID
идентификатор арендатора сервера, если не используется арендатор пользователя по умолчанию.
ActiveDirectoryInteractive
Этот метод запускает веб-браузер для проверки подлинности пользователя.
ActiveDirectoryManagedIdentity
Используйте этот метод при запуске sqlcmd (Go) на виртуальной машине Azure, которая имеет управляемое удостоверение, назначаемое системой или назначаемое пользователем. При использовании управляемого удостоверения, назначаемого пользователем, задайте имя пользователя как идентификатор клиента управляемого удостоверения. Если используется идентичность, назначаемая системой, оставьте поле имени пользователя пустым.
В этом примере показано, как подключиться с помощью удостоверения с назначением службы (SAMI):
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
В этом примере показано, как подключиться к управляемому удостоверению, назначенному пользователем (UAMI), добавив идентификатор клиента назначаемого пользователем управляемого удостоверения:
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Этот метод проверяет подлинность указанного имени пользователя в качестве идентификатора субъекта-службы и пароль в качестве секрета клиента для субъекта-службы. Укажите имя пользователя в формате <application (client) ID>
. Задайте для переменной SQLCMDPASSWORD
секрет клиента. При использовании сертификата вместо секрета клиента задайте для переменной среды AZURE_CLIENT_CERTIFICATE_PATH
путь к файлу сертификата.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>
Переменные среды для аутентификации Microsoft Entra
Некоторые параметры аутентификации Microsoft Entra не имеют входных данных командной строки, а некоторые переменные среды используются непосредственно azidentity
пакетом, используемым sqlcmd (Go).
Эти переменные среды можно задать для настройки некоторых аспектов проверки подлинности Microsoft Entra и обхода поведения по умолчанию. Помимо перечисленных ранее переменных, следующие относятся к sqlcmd (Go) и применяются к нескольким методам.
SQLCMDCLIENTID
Задайте для этой переменной среды идентификатор приложения, зарегистрированного в Microsoft Entra, который авторизован для аутентификации в базе данных SQL Azure. Применяется к методам ActiveDirectoryInteractive
и ActiveDirectoryPassword
.