Sdílet prostřednictvím


Ověřování pomocí ID Microsoft Entra v sqlcmd

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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) 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 a AZURE_CLIENT_ID jsou nezbytné k tomu, aby DefaultAzureCredential 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 nakonfiguruje DefaultAzureCredential tak, aby zvolil ClientSecretCredential.
    • Nastavením proměnné prostředí AZURE_CLIENT_CERTIFICATE_PATH se nakonfiguruje DefaultAzureCredential, aby si zvolil ClientCertificateCredential, pokud AZURE_CLIENT_SECRET není nastaveno.
  • Nastavení proměnné prostředí AZURE_USERNAME konfiguruje DefaultAzureCredential tak, aby zvolil UsernamePasswordCredential, pokud nejsou nastavené AZURE_CLIENT_SECRET a AZURE_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.