Megosztás a következőn keresztül:


Hitelesítés Microsoft Entra-azonosítóval az sqlcmd-ben

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Az sqlcmd számos Microsoft Entra hitelesítési modellt támogat, attól függően, hogy melyik verziót telepítette.

Note

Bár a Microsoft Entra ID az Azure Active Directory (Azure AD) új neve, a meglévő környezetek megzavarásának megakadályozása érdekében az Azure AD továbbra is megmarad néhány kódoltan rögzített elemben, például a felhasználói felület mezőiben, kapcsolatszolgáltatókban, hibakódokban és parancsmagokban. Ebben a cikkben a két név felcserélhető.

Ha meg szeretné tudni, hogy az sqlcmd melyik változata és verziója van telepítve a rendszeren, tekintse meg az sqlcmd segédprogram telepített verziójának ellenőrzését. Az sqlcmd beszerzéséről további információt az sqlcmd segédprogram letöltése és telepítése című témakörben talál.

Az sqlcmd (Go) több Microsoft Entra hitelesítési modellt támogat az azidentitási csomag alapján. Az implementáció egy Microsoft Entra-összekötőre támaszkodik a go-sqlcmd illesztőben.

Parancssori argumentumok

A Microsoft Entra-hitelesítés használatához használhatja a két parancssori kapcsoló egyikét.

-G (többnyire) kompatibilis az sqlcmd (ODBC) használatával. Ha meg van adva felhasználónév és jelszó, az a Microsoft Entra jelszóhitelesítéssel hitelesíti magát. Ha meg van adva felhasználónév, a Microsoft Entra interaktív hitelesítést használ, amely megjeleníthet egy webböngészőt. Ha nincs megadva felhasználónév vagy jelszó, egy DefaultAzureCredential-t használ, amely különböző mechanizmusokon keresztül próbál hitelesítést végezni.

--authentication-method= a következő hitelesítési típusok egyikének megadására használható.

ActiveDirectoryDefault

  • A mód által használt hitelesítési típusokról az Alapértelmezett Azure Credential című témakörben olvashat.
  • Akkor válassza ezt a módszert, ha az adatbázis-automatizálási szkriptek a helyi fejlesztési környezetekben és az Azure-ban üzemelő éles környezetben is futtathatók. A fejlesztési környezetben használhat ügyfélkulcsot vagy Azure CLI-bejelentkezést. A szkript fejlesztői környezetből való módosítása nélkül használhat felügyelt identitást vagy ügyfélkulcsot a gyártási környezetben.
  • Környezeti változók AZURE_TENANT_ID beállítása, és AZURE_CLIENT_ID szükségesek DefaultAzureCredential a környezeti konfiguráció ellenőrzésének megkezdéséhez, és a hitelesítéshez keresse meg az alábbi további környezeti változók egyikét:
    • A környezeti változó AZURE_CLIENT_SECRET beállítása lehetővé teszi DefaultAzureCredential számára ClientSecretCredential kiválasztását.
    • A környezeti változó AZURE_CLIENT_CERTIFICATE_PATH beállításával megadhatja DefaultAzureCredentialClientCertificateCredential, AZURE_CLIENT_SECRET hogy nincs-e beállítva.
  • Az AZURE_USERNAME környezeti változó beállítása úgy konfigurálja a DefaultAzureCredential-t, hogy a UsernamePasswordCredential-et válassza, ha AZURE_CLIENT_SECRET és AZURE_CLIENT_CERTIFICATE_PATH nincs beállítva.

ActiveDirectoryIntegrated

Ez a metódus jelenleg nincs implementálva, és visszatér a ActiveDirectoryDefault.

ActiveDirectoryPassword

  • Ez a módszer felhasználónévvel és jelszóval hitelesít. Nem működik, ha MFA szükséges.

  • A felhasználónevet és a jelszót a szokásos parancssori kapcsolókkal vagy SQLCMD környezeti változókkal adja meg.

  • Állítsa be AZURE_TENANT_ID a környezeti változót a kiszolgáló bérlőazonosítójára, ha nem a felhasználó alapértelmezett bérlője.

ActiveDirectoryInteractive

Ezzel a módszerrel elindít egy webböngészőt a felhasználó hitelesítéséhez.

ActiveDirectoryManagedIdentity

Ezt a módszert akkor használja, ha sqlcmd (Go) rendszert vagy felhasználó által hozzárendelt felügyelt identitást tartalmazó Azure-beli virtuális gépen futtatja. Ha felhasználó által hozzárendelt felügyelt identitást használ, állítsa a felhasználónevet a felügyelt identitás ügyfélazonosítójára. Ha rendszer által hozzárendelt identitást használ, hagyja üresen a felhasználónevet.

Ez a példa bemutatja, hogyan csatlakozhat a szolgáltatáshoz hozzárendelt felügyelt identitással (SAMI):

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity

Ez a példa bemutatja, hogyan csatlakozhat a felhasználó által hozzárendelt felügyelt identitáshoz (UAMI) a felhasználó által hozzárendelt felügyelt identitás ügyfélazonosítójának hozzáadásával:

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>

ActiveDirectoryServicePrincipal

Ez a módszer a megadott felhasználónevet szolgáltatásnevi típusazonosítóként, a jelszót pedig szolgáltatásnevi ügyféltitokként hitelesíti. Adjon meg egy felhasználónevet az űrlapon <application (client) ID>. Állítsa be SQLCMDPASSWORD a változót az ügyfél titkos kódjára. Ha az ügyfélkulcs helyett tanúsítványt használ, állítsa be AZURE_CLIENT_CERTIFICATE_PATH a környezeti változót a tanúsítványfájl elérési útjára.

sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>

Környezeti változók a Microsoft Entra-hitelesítéshez

Egyes Microsoft Entra hitelesítési beállítások nem rendelkeznek parancssori bemenetekkel, és egyes környezeti változókat közvetlenül az azidentitysqlcmd (Go) által használt csomag használ fel.

Ezek a környezeti változók beállíthatók a Microsoft Entra-hitelesítés bizonyos aspektusainak konfigurálására és az alapértelmezett viselkedés megkerülésére. A korábban felsorolt változók mellett az alábbiak az sqlcmd (Go) függvényre vonatkoznak, és több metódusra is érvényesek.

SQLCMDCLIENTID

Állítsa be ezt a környezeti változót a Microsoft Entra-ban regisztrált alkalmazás azonosítójára, amely jogosult az Azure SQL Database-ben való hitelesítésre. ActiveDirectoryInteractive és ActiveDirectoryPassword metódusokra vonatkozik.