Verifiëren met Microsoft Entra-id in sqlcmd
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-database in Microsoft Fabric
sqlcmd- ondersteunt diverse Microsoft Entra-verificatiemodellen, afhankelijk van de versie die u hebt geïnstalleerd.
Notitie
Hoewel Microsoft Entra ID de nieuwe naam is voor Azure Active Directory (Azure AD), blijft Azure AD aanwezig in sommige hardcoded elementen, zoals gebruikersinterfacevelden, verbindingsproviders, foutcodes en cmdlets om te voorkomen dat bestaande omgevingen worden onderbroken. In dit artikel zijn de twee namen uitwisselbaar.
Zie sqlcmd-hulpprogrammavoor meer informatie over het verschil tussen sqlcmd versies.
sqlcmd (Go) ondersteunt meer Microsoft Entra-verificatiemodellen op basis van het azidentity-pakket. De implementatie is afhankelijk van een Microsoft Entra-connector in het go-sqlcmd-stuurprogramma.
Opdrachtregelargumenten
Als u Microsoft Entra-verificatie wilt gebruiken, kunt u een van de twee opdrachtregelopties gebruiken.
-G
is (meestal) compatibel met het gebruik ervan in sqlcmd (ODBC). Als er een gebruikersnaam en wachtwoord worden opgegeven, wordt deze geverifieerd met behulp van Microsoft Entra-wachtwoordverificatie. Als er een gebruikersnaam is opgegeven, wordt interactieve Verificatie van Microsoft Entra gebruikt, die mogelijk een webbrowser weergeeft. Als er geen gebruikersnaam of wachtwoord wordt opgegeven, wordt er een DefaultAzureCredential
gebruikt, die probeert te verifiëren via verschillende mechanismen.
--authentication-method=
kan worden gebruikt om een van de volgende verificatietypen op te geven.
ActiveDirectoryDefault
- Zie voor een overzicht van de soorten authenticatie die in deze modus worden gebruikt, Azure Standaardreferenties.
- Kies deze methode als uw databaseautomatiseringsscripts zijn bedoeld om te worden uitgevoerd in zowel lokale ontwikkelomgevingen als in een productie-implementatie in Azure. In uw ontwikkelomgeving kunt u een clientgeheim of een Azure CLI-aanmelding gebruiken. Zonder het script te wijzigen vanuit de ontwikkelomgeving, kunt u een beheerde identiteit of clientgeheim gebruiken voor uw productie-implementatie.
- Het instellen van omgevingsvariabelen
AZURE_TENANT_ID
enAZURE_CLIENT_ID
zijn nodig voorDefaultAzureCredential
om de omgevingsconfiguratie te controleren en te zoeken naar een van de volgende aanvullende omgevingsvariabelen om te verifiëren:- Als u omgevingsvariabele instelt
AZURE_CLIENT_SECRET
configureert u deDefaultAzureCredential
omClientSecretCredential
te kiezen. - Als u omgevingsvariabele instelt
AZURE_CLIENT_CERTIFICATE_PATH
configureert u deDefaultAzureCredential
omClientCertificateCredential
te kiezen alsAZURE_CLIENT_SECRET
niet is ingesteld.
- Als u omgevingsvariabele instelt
- Als u omgevingsvariabele instelt AZURE_USERNAME configureert u de
DefaultAzureCredential
omUsernamePasswordCredential
te kiezen alsAZURE_CLIENT_SECRET
enAZURE_CLIENT_CERTIFICATE_PATH
niet zijn ingesteld.
ActiveDirectory-geïntegreerd
Deze methode is momenteel niet geïmplementeerd en valt terug op ActiveDirectoryDefault
.
ActiveDirectoryWachtwoord
Deze methode verifieert met behulp van een gebruikersnaam en wachtwoord. Het werkt niet als MFA is vereist.
U geeft de gebruikersnaam en het wachtwoord op met behulp van de gebruikelijke opdrachtregelswitches of
SQLCMD
omgevingsvariabelen.Stel
AZURE_TENANT_ID
omgevingsvariabele in op de tenant-id van de server als deze niet de standaardtenant van de gebruiker gebruikt.
ActiveDirectoryInteractive
Met deze methode wordt een webbrowser gestart om de gebruiker te verifiëren.
ActiveDirectoryManagedIdentity
Gebruik deze methode bij het uitvoeren van sqlcmd (Go) op een Azure-VM met een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit. Als u een door de gebruiker toegewezen beheerde identiteit gebruikt, stelt u de gebruikersnaam in op de client-id van de beheerde identiteit. Als u een door het systeem toegewezen identiteit gebruikt, laat u de gebruikersnaam leeg.
In dit voorbeeld ziet u hoe u verbinding maakt met behulp van een door de service toegewezen beheerde identiteit (SAMI):
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
In dit voorbeeld ziet u hoe u verbinding maakt met een door de gebruiker toegewezen beheerde identiteit (UAMI) door de client-id toe te voegen van de door de gebruiker toegewezen beheerde identiteit:
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Met deze methode wordt de opgegeven gebruikersnaam geverifieerd als een service-principal-id en het wachtwoord als het clientgeheim voor de service-principal. Geef een gebruikersnaam op in het formulier <service principal id>@<tenant id>
. Stel de SQLCMDPASSWORD
-variabele in op het klantgeheim. Als u een certificaat gebruikt in plaats van een clientgeheim, stelt u AZURE_CLIENT_CERTIFICATE_PATH
omgevingsvariabele in op het pad van het certificaatbestand.
Omgevingsvariabelen voor Microsoft Entra-verificatie
Sommige Microsoft Entra-verificatie-instellingen hebben geen opdrachtregelinvoer en sommige omgevingsvariabelen worden rechtstreeks gebruikt door het azidentity
-pakket dat wordt gebruikt door sqlcmd (Go).
Deze omgevingsvariabelen kunnen worden ingesteld om bepaalde aspecten van Microsoft Entra-verificatie te configureren en standaardgedrag te omzeilen. Naast de eerder vermelde variabelen zijn de volgende specifieke variabelen voor sqlcmd (Go) en van toepassing op meerdere methoden.
SQLCMDCLIENTID
Stel deze omgevingsvariabele in op de id van een toepassing die is geregistreerd in Microsoft Entra, die is geautoriseerd voor verificatie bij Azure SQL Database. Is van toepassing op ActiveDirectoryInteractive
- en ActiveDirectoryPassword
-methoden.