Ověřování pomocí ID Microsoft Entra v sqlcmd
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
databáze SQL v Microsoft Fabric
sqlcmd podporuje různé modely ověřování Microsoft Entra podle toho, jakou verzi jste nainstalovali.
Poznámka
I když je ID Microsoft Entra novým názvem proAzure Active Directory (Azure AD), aby se zabránilo narušení existujících prostředí, Azure AD nadále zůstává ve některých pevně zakódovaných prvcích, jako jsou pole uživatelského rozhraní, zprostředkovatelé připojení, kódy chyb a rutiny. V tomto článku jsou tyto dva názvy zaměnitelné.
Další informace o rozdílu mezi verzemi sqlcmd naleznete v tématu nástroj sqlcmd.
- sqlcmd (Go)
- sqlcmd (ODBC)
sqlcmd (Go) podporuje více modelů ověřování Microsoft Entra, na základě balíčku azidentity. Implementace spoléhá na konektor Microsoft Entra v ovladači go-sqlcmd.
Argumenty příkazového řádku
Pokud chcete použít ověřování Microsoft Entra, můžete použít jeden ze dvou přepínačů příkazového řádku.
-G
je (většinou) kompatibilní s jeho použitím v sqlcmd (ODBC). Pokud je zadané uživatelské jméno a heslo, ověří se pomocí ověřování hesla Microsoft Entra. Pokud je zadané uživatelské jméno, používá interaktivní ověřování Microsoft Entra, které může zobrazit webový prohlížeč. Pokud není zadané žádné uživatelské jméno nebo heslo, použije DefaultAzureCredential
, který se pokusí ověřit prostřednictvím různých mechanismů.
--authentication-method=
lze použít k určení jednoho z následujících typů ověřování.
Active Directory Výchozí
- Přehled typů ověřování, které tento režim používá, najdete v tématu Výchozí přihlašovací údaje Azure.
- Tuto metodu zvolte, pokud jsou skripty pro automatizaci databáze určené ke spuštění v místním vývojovém prostředí i v produkčním nasazení v Azure. Ve vývojovém prostředí můžete použít tajný klíč klienta nebo přihlášení k Azure CLI. Beze změny skriptu z vývojového prostředí můžete ve svém produkčním nasazení použít spravovanou identitu nebo tajný klíč klienta.
- Nastavení proměnných prostředí
AZURE_TENANT_ID
aAZURE_CLIENT_ID
jsou nezbytné k tomu, abyDefaultAzureCredential
začal kontrolovat konfiguraci prostředí a hledat jednu z následujících dalších proměnných prostředí, aby bylo možné provést ověření:- Nastavení proměnné prostředí
AZURE_CLIENT_SECRET
nakonfigurujeDefaultAzureCredential
tak, aby zvolilClientSecretCredential
. - Nastavením proměnné prostředí
AZURE_CLIENT_CERTIFICATE_PATH
se nakonfigurujeDefaultAzureCredential
, aby si zvolilClientCertificateCredential
, pokudAZURE_CLIENT_SECRET
není nastaveno.
- Nastavení proměnné prostředí
- Nastavení proměnné prostředí AZURE_USERNAME konfiguruje
DefaultAzureCredential
tak, aby zvolilUsernamePasswordCredential
, pokud nejsou nastavenéAZURE_CLIENT_SECRET
aAZURE_CLIENT_CERTIFICATE_PATH
.
ActiveDirectoryIntegrated
Tato metoda není aktuálně implementována a vrátí se do ActiveDirectoryDefault
.
Heslo pro Active Directory
Tato metoda se ověřuje pomocí uživatelského jména a hesla. Pokud je vyžadováno vícefaktorové ověřování, nebude to fungovat.
Uživatelské jméno a heslo zadáte pomocí obvyklých přepínačů příkazového řádku nebo
SQLCMD
proměnných prostředí.Nastavte proměnnou prostředí
AZURE_TENANT_ID
na ID tenanta na serveru, pokud nepoužíváte výchozího tenanta pro uživatele.
ActiveDirectoryInteractive
Tato metoda spustí webový prohlížeč pro ověření uživatele.
ActiveDirectoryManagedIdentity
Tuto metodu použijte při spuštění sqlcmd (Go) na virtuálním počítači Azure, který má spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem. Pokud používáte spravovanou identitu přiřazenou uživatelem, nastavte uživatelské jméno na ID klienta spravované identity. Pokud používáte identitu přiřazenou systémem, nechte uživatelské jméno prázdné.
Tento příklad ukazuje, jak se připojit pomocí spravované identity přiřazené službou (SAMI):
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
Tento příklad ukazuje, jak se připojit pomocí spravované identity přiřazené uživatelem (UAMI) přidáním ID klienta spravované identity přiřazené uživatelem:
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Tato metoda ověří zadané uživatelské jméno jako ID instančního objektu a heslo jako tajný klíč klienta pro instanční objekt. Zadejte uživatelské jméno ve formuláři <service principal id>@<tenant id>
. Nastavte proměnnou SQLCMDPASSWORD
na tajný klíč klienta. Pokud používáte certifikát místo tajného klíče klienta, nastavte AZURE_CLIENT_CERTIFICATE_PATH
proměnnou prostředí na cestu k souboru certifikátu.
Proměnné prostředí pro ověřování Microsoft Entra
Některá nastavení ověřování v Microsoft Entra nemají vstupy pro příkazový řádek a některé proměnné prostředí jsou přímo využívány balíčkem azidentity
, který používá sqlcmd (Go).
Tyto systémové proměnné prostředí lze nastavit k nakonfigurování některých aspektů ověřování Microsoft Entra a k obejití výchozího chování. Kromě dříve uvedených proměnných jsou následující specifické pro sqlcmd (Go) a platí pro více metod.
SQLCMDCLIENTID
Nastavte tuto proměnnou prostředí na identifikátor aplikace zaregistrované v Microsoft Entra, který má oprávnění k ověření ve službě Azure SQL Database. Platí pro metody ActiveDirectoryInteractive
a ActiveDirectoryPassword
.