S'authentifier avec votre compte Microsoft Entra ID dans sqlcmd
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
sqlcmd prend en charge différents modèles d'authentification Microsoft Entra, en fonction de la version installée.
Remarque
Bien que Microsoft Entra ID soit le nouveau nom d’Azure Active Directory (Azure AD) pour empêcher l’interruption des environnements existants, Azure AD reste toujours dans certains éléments codés en dur, tels que les champs d’interface utilisateur, les fournisseurs de connexions, les codes d’erreur et cmdlets. Dans cet article, les deux noms sont interchangeables.
Pour plus d'informations sur la différence entre les versions sqlcmd, consultez l'utilitaire sqlcmd.
sqlcmd (Go) prend en charge davantage de modèles d'authentification Microsoft Entra, en fonction du package azidentity. L'implémentation s'appuie sur le connecteur Microsoft Entra dans le gestionnaire go-sqlcmd.
Arguments de ligne de commande
Pour utiliser l'authentification Microsoft Entra, vous pouvez utiliser l'un des deux commutateurs de ligne de commande.
-G
est (principalement) compatible avec son utilisation dans sqlcmd (ODBC). Si un nom d'utilisateur et un mot de passe sont fournis, il s'authentifie à l'aide de l'authentification par mot de passe Microsoft Entra. Si un nom d’utilisateur est fourni, il utilise l’authentification interactive Microsoft Entra qui peut afficher un navigateur Web. Si aucun nom d'utilisateur ni mot de passe n'est fourni, il utilise un DefaultAzureCredential
qui tente de l'authentification par le biais de différents mécanismes.
--authentication-method=
peut être utilisé pour spécifier l'un des types d'authentification suivants.
ActiveDirectoryDefault
- Pour obtenir une vue d'ensemble des types d'authentification que ce mode utilise, consultez Informations d'identification Azure par défaut.
- Choisissez cette méthode si vos scripts d'automatisation de bases de données sont destinés à s'exécuter dans des environnements de développement locaux et dans un déploiement de production dans Azure. Dans votre environnement de développement, vous pouvez utiliser un secret client ou une connexion Azure CLI. Sans modifier le script de l'environnement de développement, vous pourrez utiliser une identité managée ou une clé secrète client sur votre déploiement de production.
- Le paramétrage des variables d'environnement
AZURE_TENANT_ID
etAZURE_CLIENT_ID
est nécessaire pour queDefaultAzureCredential
commence à vérifier la configuration de l'environnement et recherche l'une des variables d'environnement supplémentaires suivantes pour s'authentifier :- Le paramétrage de la variable d'environnement
AZURE_CLIENT_SECRET
configure leDefaultAzureCredential
pour choisirClientSecretCredential
. - La définition de la variable d'environnement
AZURE_CLIENT_CERTIFICATE_PATH
configureDefaultAzureCredential
pour choisirClientCertificateCredential
siAZURE_CLIENT_SECRET
n'est pas défini.
- Le paramétrage de la variable d'environnement
- La définition de la variable d'environnement AZURE_USERNAME configure
DefaultAzureCredential
pour choisirUsernamePasswordCredential
siAZURE_CLIENT_SECRET
etAZURE_CLIENT_CERTIFICATE_PATH
ne sont pas définis.
ActiveDirectoryIntegrated
Cette méthode n'est actuellement pas implémentée et revient à ActiveDirectoryDefault
.
ActiveDirectoryPassword
Cette méthode procède à l'authentification avec un nom d'utilisateur et un mot de passe. Elle ne fonctionne pas si l'authentification multifacteur est exigée.
Vous fournissez le nom d'utilisateur et le mot de passe à l'aide des commutateurs de ligne de commande habituels ou des variables d'environnement
SQLCMD
.Définissez la variable d'environnement
AZURE_TENANT_ID
sur l'ID d'abonné du serveur s'il n'utilise pas l'abonné par défaut de l'utilisateur.
ActiveDirectoryInteractive
Cette méthode lance un navigateur web pour authentifier l'utilisateur.
ActiveDirectoryManagedIdentity
Utilisez cette méthode lors de l'exécution de sqlcmd (Go) sur une machine virtuelle Azure qui a une identité managée affectée par le système ou affectée par l'utilisateur. Si vous utilisez une identité managée affectée par l'utilisateur, définissez le nom d'utilisateur sur l'ID client de l'identité managée. Si vous utilisez une identité affectée par le système, laissez le nom d'utilisateur vide.
Cet exemple montre comment se connecter à l’aide d’une identité managée affectée par le service (SAMI) :
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
Cet exemple montre comment se connecter à une identité managée affectée par l’utilisateur (UAMI) en ajoutant l’ID client de l’identité managée affectée par l’utilisateur :
-S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Cette méthode authentifie le nom d'utilisateur fourni en tant qu'ID de principal de service et le mot de passe comme clé secrète client pour le principal de service. Indiquez un nom d'utilisateur dans le formulaire <service principal id>@<tenant id>
. Définissez la variable SQLCMDPASSWORD
sur la clé secrète client. Si vous utilisez un certificat au lieu d'une clé secrète client, définissez la variable d'environnement AZURE_CLIENT_CERTIFICATE_PATH
sur le chemin du fichier de certificat.
Variables d'environnement pour l'authentification Microsoft Entra
Certains paramètres d'authentification Microsoft Entra n'ont pas d'entrées de ligne de commande et certaines variables d'environnement sont consommées directement par le package azidentity
utilisé par sqlcmd (Go).
Ces variables d'environnement peuvent être définies pour configurer certains aspects de l'authentification Microsoft Entra et contourner les comportements par défaut. Outre les variables répertoriées ci-dessus, les éléments suivants sont spécifiques à sqlcmd (Go) et s'appliquent à plusieurs méthodes.
SQLCMDCLIENTID
Définissez cette variable d'environnement sur l'identificateur d'une application inscrite dans Microsoft Entra avec l'autorisation de s'authentifier auprès de la base de données Azure SQL. S'applique aux méthodes ActiveDirectoryInteractive
et ActiveDirectoryPassword
.