Configurer et gérer l’authentification Microsoft Entra avec Azure SQL

S’applique à :Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Cet article explique comment créer et remplir un locataire Microsoft Entra, et utiliser Microsoft Entra ID (anciennement Azure Active Directory), avec Azure SQL Database, Azure SQL Managed Instance et Azure Synapse Analytics. Pour une vue d'ensemble, consultez la rubrique sur l'Authentification Microsoft Entra.

Remarque

Microsoft Entra ID était précédemment connu sous le nom d’Azure Active Directory (Azure AD).

Méthodes d'authentification non Microsoft Entra.

Microsoft Entra ID prend en charge les méthodes d’authentification suivantes :

  • Identités uniquement cloud Microsoft Entra
  • Les identités hybrides Microsoft Entra qui prennent en charge :
    • Authentification cloud avec deux options associées à une authentification unique (SSO) transparente
      • Authentification par hachage de mot de passe Microsoft Entra
      • Authentification directe Microsoft Entra
    • Authentification fédérée

Pour plus d’informations sur les méthodes d’authentification Microsoft Entra et sur celle à choisir, consultez Choisir la méthode d’authentification adaptée à votre solution d’identité hybride Microsoft Entra.

Pour plus d’informations sur les identités hybrides, la configuration et la synchronisation Microsoft Entra, consultez :

Créer et remplir un locataire Microsoft Entra

Créez un locataire Microsoft Entra et remplissez-le avec des utilisateurs et des groupes. Les locataires Microsoft Entra peuvent être gérés entièrement dans Azure ou utilisés pour la fédération d’un service de domaine local Active Directory.

Pour plus d’informations, consultez l’article suivant :

Associer ou ajouter un abonnement Azure à Microsoft Entra ID

  1. Pour associer votre abonnement Azure à Microsoft Entra ID, faites de l’annuaire un annuaire approuvé pour l’abonnement Azure qui héberge la base de données. Pour plus de détails, consultez Associer ou ajouter un abonnement Azure à votre locataire Microsoft Entra.

  2. Utilisez le sélecteur de répertoire dans le portail Azure pour basculer vers l’abonnement associé au domaine.

    Important

    Chaque abonnement Azure entretient une relation d’approbation avec une instance Microsoft Entra. Cela signifie qu'il approuve ce répertoire pour authentifier les utilisateurs, les services et les appareils. Plusieurs abonnements peuvent approuver le même annuaire, mais un abonnement n’approuve qu’un seul annuaire. Cette relation de confiance qu’un abonnement possède avec un répertoire est contraire à celle établie entre un abonnement et toutes les autres ressources Azure (sites Web, bases de données, etc.), qui se rapprochent plus des ressources enfants d'un abonnement. Lorsqu’un abonnement expire, les autres ressources associées à l'abonnement deviennent également inaccessibles. Cependant le répertoire reste dans Azure, et vous pouvez associer un autre abonnement à ce répertoire et continuer à gérer les utilisateurs du répertoire. Pour plus d’informations sur les ressources, consultez Comprendre l’accès aux ressources dans Azure. Pour en savoir plus sur cette relation d’approbation, consultez Comment associer ou ajouter un abonnement Azure à Microsoft Entra ID.

L’administrateur Microsoft Entra avec un serveur dans SQL Database

Chaque serveur logique dans Azure (hébergeant SQL Database ou Azure Synapse) démarre avec un seul compte administrateur de serveur, lequel est l’administrateur de l’ensemble du serveur. Vous pouvez créer un deuxième compte administrateur en tant que compte Microsoft Entra. Cet utilisateur principal est créé en tant qu’utilisateur de base de données autonome dans la base de données master du serveur. Les comptes administrateur de serveur sont des membres du rôle db_owner de chaque base de données utilisateur, et chaque base de données d'utilisateurs est saisie en tant qu'utilisateur dbo. Pour plus d'informations sur les comptes administrateur, consultez Gestion des bases de données et des connexions.

L’administrateur Microsoft Entra doit être configuré pour les serveurs primaires et secondaires lors de l’utilisation de Microsoft Entra ID avec la géo-réplication. Si un serveur n’a pas d’administrateur Microsoft Entra, les connexions Microsoft Entra et les utilisateurs reçoivent une erreur de serveur Cannot connect.

Remarque

Les utilisateurs qui ne sont pas basés sur un compte Microsoft Entra, y compris le compte administrateur de serveur, ne peuvent pas créer d’utilisateurs Microsoft Entra. En effet, ils ne disposent pas de l’autorisation requise pour valider des utilisateurs de base de données proposés avec Microsoft Entra ID.

Provisionner l’administrateur Microsoft Entra (SQL Managed Instance)

Important

Suivez ces étapes uniquement si vous approvisionnez une instance Azure SQL Managed Instance. Cette opération peut être exécutée uniquement par l’administrateur général ou un administrateur de rôle privilégié dans Microsoft Entra ID.

Vous pouvez affecter le rôle Lecteurs de répertoire à un groupe dans Microsoft Entra ID. Les propriétaires du groupe peuvent ensuite ajouter l’identité de l’instance gérée en tant que membre de ce groupe, ce qui vous permet d’approvisionner un administrateur Microsoft Entra pour l’instance SQL Managed Instance. Pour plus d’informations sur cette fonctionnalité, consultez Rôle Lecteurs de répertoire dans Microsoft Entra pour Azure SQL.

Votre instance SQL Managed Instance a besoin d’autorisations pour lire Microsoft Entra ID afin d’effectuer correctement des tâches telles que l’authentification des utilisateurs via l’appartenance au groupe de sécurité ou la création de nouveaux utilisateurs. Pour ce faire, vous devez accorder l’autorisation de lecture SQL Managed Instance pour Microsoft Entra ID. Vous pouvez effectuer cette opération dans le portail Azure ou à l’aide de PowerShell.

Portail Azure

Pour accorder à votre instance SQL Managed Instance une autorisation d’accès en lecture pour Microsoft Entra ID, à l’aide du portail Azure, connectez-vous en tant qu’administrateur général et procédez comme suit :

  1. Dans le portail Azure, dans le coin supérieur droit, sélectionnez votre compte, puis choisissez Changer de répertoires pour confirmer quel est votre répertoire actuel. Changez de répertoires, si nécessaire.

    Screenshot of the Azure portal showing where to switch your directory.

  2. Choisissez le répertoire Microsoft Entra approprié comme répertoire actif.

    Cette étape lie l’abonnement associé à Microsoft Entra ID à SQL Managed Instance, ce qui garantit que le locataire Microsoft Entra et SQL Managed Instance utilisent le même abonnement.

  3. Vous pouvez maintenant choisir votre administrateur Microsoft Entra pour votre instance SQL Managed Instance. Pour cela, accédez à votre ressource d’instance managée dans le portail Azure et sélectionnez Administrateur Microsoft Entra dans lesParamètres.

    Screenshot of the Azure portal showing the Microsoft Entra admin page open for the selected SQL managed instance.

  4. Sélectionnez la bannière en haut de la page administrateur Microsoft Entra et accordez les autorisations à l’utilisateur actuel.

    Screenshot of the dialog for granting permissions to a SQL managed instance for accessing Microsoft Entra ID with the Grant permissions button selected.

  5. Lorsque l’opération a réussi, la notification suivante s’affichera dans le coin supérieur droit :

    Screenshot of a notification confirming that Microsoft Entra ID read permissions have been successfully updated for the managed instance.

  6. Dans la page administrateur Microsoft Entra, sélectionnez Définir l’administrateur dans la barre de navigation pour ouvrir la fenêtre Microsoft Entra ID.

    Screenshot showing the Set admin command highlighted on the Microsoft Entra admin page for the selected SQL managed instance.

  7. Dans la fenêtre Microsoft Entra ID, recherchez un utilisateur, cochez la case se référant à l’utilisateur ou groupe devant être administrateur, puis cliquez sur Sélectionner pour fermer la fenêtre et revenir à la page administrateur Microsoft Entra pour votre instance managée.

    La fenêtre Microsoft Entra ID affiche tous les membres et groupes de votre répertoire actif. Les utilisateurs ou les groupes grisés ne peuvent pas être sélectionnés, car ils ne sont pas pris en charge en tant qu’administrateurs Microsoft Entra. Consultez la liste des administrateurs pris en charge dans la section Fonctionnalités et limites Microsoft Entra. Le contrôle d’accès basé sur les rôles Azure (Azure RBAC) s'applique uniquement au portail Azure et n’est pas propagé vers SQL Database, SQL Managed Instance ou Azure Synapse.

  8. Dans la barre de navigation de la page administrateur Microsoft Entra pour votre instance managée, sélectionnez Enregistrer pour confirmer votre administrateur Microsoft Entra.

    Screenshot of the Microsoft Entra admin page with the Save button in the top row next to the Set admin and Remove admin buttons.

    La procédure de changement de l’administrateur peut prendre plusieurs minutes. Le nouvel administrateur apparaîtra dans la zone pour Administrateur Microsoft Entra.

    Pour les utilisateurs et groupes Microsoft Entra, l’ID d’objet s’affiche à côté du nom d’administrateur. Pour les applications (principaux de service), l’ID d’application s’affiche.

Après avoir approvisionné un administrateur Microsoft Entra pour votre instance SQL Managed Instance, vous pouvez commencer à créer des principaux de serveur (connexions) avec la syntaxe CREATE LOGIN. Pour plus d’informations, consultez Vue d’ensemble de SQL Managed Instance.

Conseil

Pour supprimer un administrateur, en haut de la page Administrateur Microsoft Entra, sélectionnez Supprimer l’administrateur, puis Enregistrer.

PowerShell

Pour utiliser PowerShell pour accorder à votre instance SQL Managed Instance des autorisations de lecture pour Microsoft Entra ID, exécutez ce script :

# This script grants "Directory Readers" permission to a service principal representing the SQL Managed Instance.
# It can be executed only by a user who is a member of the **Global Administrator** or **Privileged Roles Administrator** role.

Import-Module Microsoft.Graph.Authentication
$managedInstanceName = "<ManagedInstanceName>" # Enter the name of your managed instance
$tenantId = "<TenantId>"                       # Enter your tenant ID

Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
 
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
    New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
    $role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}

# Get service principal for your SQL Managed Instance
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$managedInstanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
    Write-Output "Error: No service principal with name '$($managedInstanceName)' found, make sure that managedInstanceName parameter was entered correctly."
    exit
}
if (-not ($roleMember.Count -eq 1)) {
    Write-Output "Error: Multiple service principals with name '$($managedInstanceName)'"
    Write-Output $roleMember | Format-List DisplayName, Id, AppId
    exit
}

# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
    # Add principal to Directory Readers role
    Write-Output "Adding service principal '$($managedInstanceName)' to 'Directory Readers' role..."
    $body = @{
        "@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
    }
    New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
    Write-Output "'$($managedInstanceName)' service principal added to 'Directory Readers' role."
} else {
    Write-Output "Service principal '$($managedInstanceName)' is already member of 'Directory Readers' role."
}

PowerShell pour SQL Managed Instance

Pour exécuter les applets de commande PowerShell, Azure PowerShell doit être installé et en cours d’exécution. Consultez la rubrique Installation et configuration d’Azure PowerShell pour plus de détails.

Important

Azure SQL Managed Instance prend toujours en charge le module PowerShell Azure Resource Manager, mais tous les développements futurs seront destinés au module Az.Sql. Le module AzureRM continue à recevoir des résolutions de bogues jusqu’à au moins décembre 2020. Les arguments des commandes dans le module Az sont sensiblement identiques à ceux des modules AzureRm. Pour en savoir plus sur leur compatibilité, consultez Présentation du nouveau module Az Azure PowerShell.

Pour configurer un administrateur Microsoft Entra, exécutez les commandes Azure PowerShell suivantes :

  • Connect-AzAccount
  • Select-AzSubscription

Les cmdlets utilisées pour provisionner et gérer l’administrateur Microsoft Entra pour votre instance SQL Managed Instance sont répertoriées dans le tableau suivant :

Nom de l’applet de commande Description
Set-AzSqlInstanceActiveDirectoryAdministrator Approvisionne un administrateur Microsoft Entra pour l’instance SQL Managed Instance dans l’abonnement actuel. (Doit être à partir de l’abonnement actuel)
Remove-AzSqlInstanceActiveDirectoryAdministrator Supprime un administrateur Microsoft Entra pour l’instance SQL Managed Instance dans l’abonnement actuel.
Get-AzSqlInstanceActiveDirectoryAdministrator Renvoie des informations sur un administrateur Microsoft Entra pour l’instance SQL Managed Instance dans l’abonnement actuel.

La commande suivante obtient des informations sur un administrateur Microsoft Entra pour une instance SQL Managed Instance nommée ManagedInstance01, associée à un groupe de ressources nommé ResourceGroup01.

Get-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01"

La commande suivante approvisionne un groupe d’administrateurs Microsoft Entra nommé DBA pour l’instance SQL Managed Instance nommée ManagedInstance01. Ce serveur est associé au groupe de ressources ResourceGroup01.

Set-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstance01" -DisplayName "DBAs" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353b"

La commande suivante supprime l’administrateur Microsoft Entra pour l’instance SQL Managed Instance nommée ManagedInstanceName01, associée au groupe de ressources ResourceGroup01.

Remove-AzSqlInstanceActiveDirectoryAdministrator -ResourceGroupName "ResourceGroup01" -InstanceName "ManagedInstanceName01" -Confirm -PassThru

Approvisionner l’administrateur Microsoft Entra (SQL Database)

Important

Suivez ces étapes uniquement si vous approvisionnez un serveur pour SQL Database ou Azure Synapse.

Les deux procédures suivantes vous montrent comment approvisionner un administrateur Microsoft Entra pour votre serveur dans le portail Azure, à l’aide de PowerShell.

Portail Azure

  1. Dans le Portail Azure, dans le coin supérieur droit, sélectionnez votre compte, puis choisissez Changer de répertoire pour ouvrir la page Répertoires + abonnements. Choisissez le répertoire Microsoft Entra qui contient votre base de données Azure SQL ou Azure Synapse Analytics comme répertoire actif.

  2. Recherchez des serveurs SQL Server et sélectionnez le serveur logique pour votre base de données Azure SQL.

    Search for and select SQL servers.

    Remarque

    Dans cette page, avant de choisir des serveurs SQL Server, vous pouvez sélectionner l’étoile à côté du nom pour ajouter la catégorie à vos favoris, puis placer Serveurs SQL dans la barre de navigation à gauche.

    Envisagez également de consulter votre tableau de bord Azure SQL.

  3. Dans la page SQL Server, sélectionnez Microsoft Entra ID.

  4. Dans la page Microsoft Entra ID, sélectionnez Définir l’administrateur pour ouvrir la fenêtre Microsoft Entra ID

    Screenshot shows the option to set the Microsoft Entra admin for SQL servers.

  5. Dans la page Microsoft Entra ID, recherchez un utilisateur, puis sélectionnez l’utilisateur ou le groupe pour qu’il soit administrateur. Utilisez Selectionner pour confirmer votre choix et fermer la fenêtre pour revenir à la page Microsoft Entra ID pour votre serveur logique. (La fenêtre Microsoft Entra ID affiche tous les membres et groupes de votre répertoire actif. Les utilisateurs ou groupes grisés ne peuvent pas être sélectionnés, car ils ne sont pas pris en charge en tant qu’administrateurs Microsoft Entra. Consultez la liste des administrateurs pris en charge dans la section Fonctionnalités et limites de Microsoft Entra de l’Authentification Microsoft Entra avec SQL Database ou Azure Synapse.) Le contrôle d’accès en fonction du rôle Azure (Azure RBAC) s’applique uniquement au portail et n’est pas propagé au serveur.

  6. En haut de la page Microsoft Entra ID en référence à votre serveur logique, sélectionnez Enregistrer.

    Screenshot shows the option to save a Microsoft Entra admin.

    Pour les utilisateurs et groupes Microsoft Entra, l’ID d’objet s’affiche à côté du nom d’administrateur. Pour les applications (principaux de service), l’ID d’application s’affiche.

La procédure de changement de l’administrateur peut prendre plusieurs minutes. Ensuite, le nouvel administrateur apparaît dans le champ Administrateur Microsoft Entra.

Remarque

Lors de la configuration de l’administrateur Microsoft Entra, le nom du nouvel administrateur (utilisateur ou groupe) ne peut pas déjà être présent dans la base de données master virtuelle en tant qu’utilisateur de l’authentification serveur. S’il est présent, le programme d’installation échoue et annule les modifications, indiquant ainsi que le nom d’administrateur existe déjà. Étant donné qu’un utilisateur d’authentification serveur ne fait pas partie de Microsoft Entra ID, tout effort de connexion au serveur à l’aide de l’authentification Microsoft Entra est voué à l’échec.

Pour supprimer un administrateur, en haut de la page Microsoft Entra ID, sélectionnez Supprimer l’administrateur, puis cliquez Enregistrer. Cela désactive l’authentification Microsoft Entra pour votre serveur logique.

PowerShell pour SQL Database et Azure Synapse

Pour exécuter les applets de commande PowerShell, Azure PowerShell doit être installé et en cours d’exécution. Consultez la rubrique Installation et configuration d’Azure PowerShell pour plus de détails. Pour configurer un administrateur Microsoft Entra, exécutez les commandes Azure PowerShell suivantes :

  • Connect-AzAccount
  • Select-AzSubscription

Cmdlets utilisées pour approvisionner et gérer l’administrateur Microsoft Entra pour SQL Database et Azure Synapse :

Nom de l’applet de commande Description
Set-AzSqlServerActiveDirectoryAdministrator Approvisionne un administrateur Microsoft Entra pour le serveur hébergeant SQL Database ou Azure Synapse. (Doit être à partir de l’abonnement actuel)
Remove-AzSqlServerActiveDirectoryAdministrator Supprime un administrateur Microsoft Entra pour le serveur hébergeant SQL Database ou Azure Synapse.
Get-AzSqlServerActiveDirectoryAdministrator Renvoie les informations sur un administrateur Microsoft Entra actuellement configuré pour le serveur hébergeant SQL Database ou Azure Synapse.

Utilisez la commande Get-help PowerShell pour obtenir plus de détails sur chacune de ces commandes. Par exemple : get-help Set-AzSqlServerActiveDirectoryAdministrator.

Le script suivant configure un groupe d’administrateurs Microsoft Entra nommé DBA_Group (ID d’objet 40b79501-b343-44ed-9ce7-da4c8cc7353f) pour le serveur demo_server d’un groupe de ressources nommé Group-23 :

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" -DisplayName "DBA_Group"

Le paramètre d’entrée DisplayName accepte le nom d’affichage Microsoft Entra ID ou le nom d’utilisateur principal. Par exemple : DisplayName="John Smith" et DisplayName="johns@contoso.com". Pour les groupes Microsoft Entra, seul le nom complet Microsoft Entra ID est pris en charge.

Remarque

La commande Azure PowerShell Set-AzSqlServerActiveDirectoryAdministrator ne vous empêche pas de configurer des administrateurs Microsoft Entra pour des utilisateurs non pris en charge. Un utilisateur non pris en charge peut être approvisionné, mais il ne peut pas se connecter à une base de données.

L'exemple suivant utilise l' ObjectIDfacultatif en option :

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" `
    -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Remarque

L’ObjectID est requis lorsque le DisplayName n’est pas unique. Pour récupérer les valeurs ObjectID et DisplayName, vous pouvez consulter les propriétés d’un utilisateur ou d’un groupe dans la section Microsoft Entra ID du portail Azure.

L’exemple suivant renvoie des informations sur l’actuel administrateur Microsoft Entra pour le serveur :

Get-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

L’exemple suivant supprime un administrateur Microsoft Entra :

Remove-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

Remarque

Vous pouvez également approvisionner un Administrateur Microsoft Entra à l’aide des API REST. Pour plus d’informations, consultez Informations de référence sur l’API REST de gestion des services et Opérations pour Azure SQL Database

Configurer vos ordinateurs clients

Remarque

System.Data.SqlClient utilise la Bibliothèque d'authentification Active Directory Azure (ADAL), qui est obsolète. Si vous utilisez l’espace de noms System.Data.SqlClient pour l’authentification Microsoft Entra, migrez les applications vers Microsoft.Data.SqlClient et la bibliothèque d’authentification Microsoft (MSAL). Pour plus d’informations, consultez Utilisation de l'authentification Microsoft Entra avec SqlClient.

Si vous souhaitez continuer à utiliser ADAL.DLL dans vos applications, vous pouvez utiliser les liens de cette section pour installer les derniers pilotes ODBC et OLE DB, tous les deux contenant la dernière bibliothèque ADAL.DLL.

Sur toutes les machines clientes à partir desquelles vos applications ou utilisateurs se connectent à SQL Database ou Azure Synapse à l’aide d’identités Microsoft Entra, vous devez installer le logiciel suivant :

Vous pouvez répondre à ces exigences en procédant comme suit :

  • L’installation de la dernière version de SQL Server Management Studio ou SQL Server Data Tools respecte la configuration requise de .NET Framework 4.6.
    • SSMS installe la version x86 de ADAL.DLL.
    • SSDT installe la version amd64 de ADAL.DLL.
    • La dernière version de Visual Studio dans les Téléchargements Visual Studio respecte la configuration requise de .NET Framework 4.6, mais n’installe pas la version amd64 nécessaire de ADAL.DLL.

Créer des utilisateurs autonomes mappés aux identités Microsoft Entra

Cette section passe en revue les exigences et les considérations importantes à prendre en compte pour utiliser l’authentification Microsoft Entra avec la base de données Azure SQL, Azure SQL Managed Instance et Azure Synapse.

  • L’authentification avec SQL Database et Azure Synapse requiert de recourir à des utilisateurs de base de données autonome basés sur une identité Microsoft Entra. Un utilisateur de base de données autonome ne dispose pas de connexion dans la base de données master, et est mappé à une identité dans Microsoft Entra ID associée à la base de données. L’identité Microsoft Entra peut être un compte d’utilisateur, un groupe ou une application individuelle. Pour plus d’informations sur les utilisateurs de base de données autonome, consultez Utilisateurs de base de données - Rendre votre base de données portable. Pour plus d’informations sur la création d’utilisateurs de base de données autonome basés sur des identités Microsoft Entra, consultez CRÉER UN UTILISATEUR (Transact-SQL).

  • SQL Managed Instance prenant en charge les principaux (connexions) de serveur Microsoft Entra, le recours à des utilisateurs de base de données autonome n’est pas obligatoire. Cela vous permet de créer des connexions à partir d’utilisateurs, de groupes ou d’applications Microsoft Entra. Dès lors, vous pouvez vous authentifier auprès de votre instance SQL Managed Instance à l’aide de la connexion du serveur Microsoft Entra, plutôt que d’un utilisateur de base de données autonome. Pour plus d’informations, consultez Vue d’ensemble de SQL Managed Instance. Pour la syntaxe de création des principaux de serveur (connexions) Microsoft Entra, consultez CREATE LOGIN.

  • Les utilisateurs de base de données (à l’exception des administrateurs) ne peuvent créer une base de donnée en utilisant le portail Azure. Les rôles Azure ne sont pas propagés à la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse. Les rôles Microsoft Entra sont utilisés pour gérer les ressources Azure et ne s'appliquent pas aux autorisations des bases de données. Par exemple, le rôle Contributeur SQL Server ne permet pas de se connecter à la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse. L’accès doit être accordé directement dans la base de données à l’aide d’instructions Transact-SQL.

  • Vous ne pouvez pas créer directement un utilisateur de base de données pour une identité gérée dans un locataire Microsoft Entra autre que celui associé à votre abonnement Azure. Toutefois, les utilisateurs d’autres répertoires peuvent être importés dans le répertoire associé en tant qu’utilisateurs externes. Ils peuvent ensuite être utilisés pour créer des utilisateurs de base de données autonome qui peuvent accéder à SQL Database. Les utilisateurs externes peuvent également accéder via leur abonnement à des groupes Microsoft Entra qui sont des utilisateurs de base de données autonome.

  • Les caractères spéciaux comme le deux-points : ou l’esperluette &, lorsqu’ils sont inclus dans les instructions T-SQL CREATE LOGIN et CREATE USER, ne sont pas pris en charge.

Important

Les utilisateurs Microsoft Entra et les principaux de service (applications Microsoft Entra) membres de plus de 2048 groupes de sécurité Microsoft Entra ne sont pas pris en charge pour la connexion à la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse.

Pour créer un utilisateur de base de données autonome Microsoft Entra (autre que l’administrateur du serveur propriétaire de la base de données), connectez-vous à la base de données avec une identité Microsoft Entra en tant qu’utilisateur, possédant au moins l’autorisation MODIFIER UN UTILISATEUR. Dans l’exemple T-SQL suivant, Microsoft_Entra_principal_name peut être le nom d’utilisateur principal d’un utilisateur Microsoft Entra ou le nom complet d’un groupe Microsoft Entra.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Exemples : pour créer une base de données autonome représentant un utilisateur de domaine fédéré ou géré Microsoft Entra :

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;

Pour créer un utilisateur de base de données autonome représentant un groupe Microsoft Entra, indiquez le nom complet du groupe :

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Pour créer un utilisateur de base de données autonome représentant une application qui se connecte à l’aide d’un jeton Microsoft Entra :

CREATE USER [appName] FROM EXTERNAL PROVIDER;

La commande CREATE USER ... FROM EXTERNAL PROVIDER impose que SQL accède à Microsoft Entra ID (le « fournisseur externe ») pour le compte de l’utilisateur connecté. Parfois, les circonstances font que Microsoft Entra ID renvoie une exception à SQL.

  • Vous pouvez rencontrer l’erreur SQL 33134, qui contient le message d’erreur spécifique à Microsoft Entra ID. La plupart du temps, l’erreur indique que l’accès est refusé, ou que l’utilisateur doit passer par l’authentification multifacteur afin d’accéder à la ressource, ou que l’accès entre les applications internes doit être géré via une autorisation préalable. Dans les deux premiers cas, le problème est généralement dû à des stratégies d’accès conditionnel définies dans le locataire Microsoft Entra de l’utilisateur. Elles l’empêchent d’accéder au fournisseur externe. La mise à jour des stratégies d’accès conditionnel de façon à autoriser l’accès à l’application « 00000003-0000-0000-c000-000000000000 » (ID d’application de l’API Microsoft Graph) doit résoudre le problème. Si l’erreur indique que l’accès entre les applications internes doit être géré par le biais de l’autorisation préalable, le problème vient du fait que l’utilisateur est connecté en tant que principal du service. La commande doit aboutir si au lieu de cela elle est exécutée par un utilisateur.
  • Si vous recevez le message Délai d’expiration de la connexion dépassé, vous devrez peut-être définir le paramètre TransparentNetworkIPResolution de la chaîne de connexion sur la valeur false. Pour plus d’informations, consultez Problème lié au délai d’expiration de la connexion avec .NET Framework 4.6.1 - TransparentNetworkIPResolution.

Important

La suppression de l’administrateur Microsoft Entra du serveur empêche tout utilisateur concerné par l’authentification Microsoft Entra de se connecter au serveur. Si nécessaire, des utilisateurs Microsoft Entra inutilisables peuvent être supprimés manuellement par un administrateur SQL Database.

Lorsque vous créez un utilisateur de base de données, il reçoit l’autorisation CONNECT et peut se connecter à cette base de données en tant que membre du rôle PUBLIC. À l'origine, les seules autorisations disponibles pour l'utilisateur sont celles qui sont accordées au rôle PUBLIC, ainsi que les autorisations accordées à tous les groupes Microsoft Entra dont ils sont membres. L’octroi d’autorisations aux utilisateurs de base de données autonome basés sur Microsoft Entra fonctionne de la même façon que l’octroi d’autorisation à tout autre type d’utilisateur. Il est recommandé d’accorder des autorisations aux rôles de base de données et d’ajouter des utilisateurs à ces rôles, plutôt que d’accorder directement des autorisations à des utilisateurs individuels. Pour plus d’informations, consultez Notions de base sur les autorisations de moteur de base de données. Pour plus d'informations sur les rôles de base de données SQL, consultez Gestion des bases de données et des connexions dans Azure SQL Database. Un compte d’utilisateur de domaine fédéré importé dans un domaine managé comme utilisateur externe doit utiliser l’identité de domaine managé.

Les utilisateurs Microsoft Entra sont marqués dans les métadonnées de la base de données par des références spécifiques, à savoir : type E (EXTERNAL_USER), tandis qu’il s’agit du type X (EXTERNAL_GROUPS) pour les groupes. Pour plus d’informations, consultez sys.database_principals.

Se connecter à la base de données à l’aide de SSMS ou SSDT

Pour vérifier que l’administrateur Microsoft Entra est correctement configuré, connectez-vous à la base de données master en utilisant un compte d’administrateur Microsoft Entra. Pour créer un utilisateur de base de données autonome basé sur Microsoft Entra, connectez-vous à la base de données avec une identité Microsoft Entra qui a accès à la base de données et doté d’au moins l’autorisation ALTER ANY USER.

Utiliser une identité Microsoft Entra pour se connecter à l’aide de SSMS ou SSDT

Les procédures suivantes vous montrent comment vous connecter à la base de données SQL avec une identité Microsoft Entra en utilisant SQL Server Management Studio (SSMS) ou SQL Server Database Tools (SSDT).

Microsoft Entra ID : intégré

Utilisez cette méthode si vous vous êtes connecté à Windows à l’aide de vos informations d’identification Microsoft Entra à partir d’un domaine fédéré ou d’un domaine managé configuré pour une authentification unique fluide à des fins d’authentification directe et d’authentification par hachage du mot de passe. Pour plus d’informations, consultez la Authentification unique transparente de Microsoft Entra.

  1. Démarrez SSMS or SSDT et, dans la boîte de dialogue, Se connecter au serveur (ou Se connecter au moteur de base de données). Dans la zone Authentification, sélectionnez Azure Active Directory : Integrated. Il n’est pas nécessaire de saisir un mot de passe, car vos informations d’identification existantes sont fournies pour la connexion.

    Screenshot from SSMS showing Microsoft Entra Integrated authentication.

  2. Sélectionnez le bouton Options puis, la page Propriétés de connexion, dans la zone Se connecter à la base de données, tapez le nom de la base de données utilisateur à laquelle vous souhaitez vous connecter.

    Screenshot from SSMS of the Options menu.

Microsoft Entra ID - Mot de passe

Utilisez cette méthode lors de la connexion avec un nom de principal Microsoft Entra à l’aide du domaine managé Microsoft Entra. Vous pouvez également l’utiliser pour des comptes fédérés sans accéder au domaine, par exemple, lorsque vous travaillez à distance.

Utilisez cette méthode pour authentifier auprès de la base de données dans SQL Database ou SQL Managed Instance des utilisateurs d’identité uniquement cloud Microsoft Entra, ou des personnes utilisant des identités hybrides Microsoft Entra. Cette méthode prend en charge les utilisateurs désireux d’utiliser leurs informations d’identification Windows, mais dont l’ordinateur local n’est pas joint au domaine (par exemple, à l’aide d’un accès à distance). Dans ce cas, un utilisateur Windows peut indiquer ses compte de domaine et mot de passe, et s’authentifier auprès de la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse.

  1. Démarrez SSMS or SSDT et, dans la boîte de dialogue, Se connecter au serveur (ou Se connecter au moteur de base de données). Dans la zone Authentification, sélectionnez Azure Active Directory : mot de passe.

  2. Dans la zone Nom d’utilisateur, tapez votre nom d’utilisateur Microsoft Entra au format username\@domain.com. Les noms d’utilisateur doivent être un compte à partir de Microsoft Entra ID ou d’un compte à partir d’un domaine managé ou fédéré avec Microsoft Entra ID.

  3. Dans la zone Mot de passe, tapez votre mot de passe utilisateur pour le compte Microsoft Entra ou le compte de domaine managé/fédéré.

    Screenshot from SSMS using Microsoft Entra Password authentication.

  4. Sélectionnez le bouton Options puis, la page Propriétés de connexion, dans la zone Se connecter à la base de données, tapez le nom de la base de données utilisateur à laquelle vous souhaitez vous connecter. (Voir le graphique dans l’option précédente.)

Microsoft Entra ID : Universal with MFA

Utilisez cette méthode pour une authentification interactive avec authentification multifacteur (MFA), et avec le mot de passe demandé de manière interactive. Cette méthode peut être utilisée pour s'authentifier auprès des bases de données dans SQL Database, SQL Managed Instance et Azure Synapse pour les utilisateurs d’identité uniquement cloud Microsoft Entra, ou les personnes utilisant des identités hybrides Microsoft Entra.

Pour plus d’informations, consultez Utilisation de l’authentification Microsoft Entra multifacteur avec SQL Database et Azure Synapse (prise en charge de SSMS pour MFA).

Principal de service Microsoft Entra ID

Utilisez cette méthode pour vous authentifier auprès de la base de données dans SQL Database ou SQL Managed Instance avec des principaux de service Microsoft Entra (applications Microsoft Entra). Pour plus d’informations, consultez Principal de service Microsoft Entra avec Azure SQL.

Identité managée Microsoft Entra ID

Utilisez cette méthode pour vous authentifier auprès de la base de données dans SQL Database ou SQL Managed Instance avec des identités managées Microsoft Entra. Pour plus d’informations, consultez Identités managées dans Microsoft Entra pour Azure SQL.

MICROSOFT Entra ID : valeur par défaut

L’option d'authentification par défaut de Microsoft Entra ID permet l’authentification par le biais de mécanismes sans mot de passe et non interactifs, y compris les identités gérées.

Utiliser l’identité Microsoft Entra pour se connecter à l’aide de l’éditeur de requêtes du portail Azure pour la base de données Azure SQL

Pour plus d’informations sur l’éditeur de requêtes du portail Azure pour la base de données Azure SQL, consultez Démarrage rapide : utiliser l’éditeur de requêtes du portail Azure pour interroger la base de données Azure SQL.

  1. Sur le portail Azure, accédez à votre base de données SQL. Par exemple, consultez votre tableau de bord Azure SQL.

  2. Sur le portail Azure, dans le menu de gauche de la page Vue d’ensemble de votre base de données SQL, sélectionnez Éditeur de requêtes.

  3. Dans l’écran de connexion, sous Bienvenue dans l’éditeur de requêtes SQL Database, sélectionnez Continuer en tant <qu’utilisateur ou ID de groupe>.

    Screenshot showing sign-in to the Azure portal Query editor with Microsoft Entra authentication.

Utiliser une identité Microsoft Entra pour se connecter à partir d’une application cliente

Les procédures suivantes vous montrent comment se connecter à une instance SQL Database avec une identité Microsoft Entra à partir d’une application cliente. Il ne s’agit pas d’une liste complète des méthodes d’authentification utilisable avec une identité Microsoft Entra. Pour plus d’informations, consultez Se connecter à Azure SQL avec l’authentification Microsoft Entra et SqlClien.

Authentification intégrée Microsoft Entra

Pour utiliser l’authentification Windows intégrée, l’Active Directory de votre domaine doit être fédéré avec Microsoft Entra ID, ou doit être un domaine géré qui est configuré pour une authentification unique transparente pour le passage ou l’authentification par hachage de mot de passe. Pour plus d’informations, consultez la Authentification unique transparente de Microsoft Entra.

Votre application cliente (ou un service) se connectant à la base de données doit être en cours d’exécution sur un ordinateur joint au domaine dont les informations d’identification de domaine sont celles d’un utilisateur.

Pour une connexion à une base de données à l’aide de l’authentification intégrée et d’une identité Microsoft Entra, le mot clé d’authentification dans la chaîne de connexion de base de données doit avoir la valeur Active Directory Integrated. Remplacez <database_name> par le nom de votre base de données. L’exemple de code C# suivant utilise ADO .NET.

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Le mot clé de la chaîne de connexion Integrated Security=True n’est pas pris en charge pour la connexion à la base de données Azure SQL. Lorsque vous établissez une connexion ODBC, vous devez supprimer les espaces et définir l’authentification sur ActiveDirectoryIntegrated.

Authentification par mot de passe Microsoft Entra

Pour se connecter à une base de données à l’aide de comptes utilisateurs d’identités uniquement sur cloud Microsoft Entra, ou d'identités hybrides Microsoft Entra, le mot-clé d’authentification doit être défini sur Active Directory Password. La chaîne de connexion doit contenir les mots clés et valeurs d’ID utilisateur/UID et de mot de passe/PWD. Remplacez <database_name>, <email_address> et <password> par les valeurs appropriées. L’exemple de code C# suivant utilise ADO .NET.

string ConnectionString =
@"Data Source=<database_name>.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb; UID=<email_address>; PWD=<password>";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Pour en savoir plus sur les méthodes d’authentification de Microsoft Entra, utilisez les exemples de code de démonstration disponibles sur Microsoft Entra authentication GitHub Demo.

Jeton d’accès Microsoft Entra ID

Cette méthode d’authentification permet à des services de niveau intermédiaire d’obtenir des Jetons web JSON (JWT) pour se connecter à la base de données dans SQL Database, SQL Managed Instance ou Azure Synapse en obtenant un jeton de Microsoft Entra ID. Cette méthode autorise divers scénarios d’application incluant des identités de service, des principaux de service et des applications utilisant une authentification basée sur des certificats. Vous devez effectuer quatre étapes de base pour utiliser l’authentification par jeton Microsoft Entra :

  1. Inscrivez votre application auprès de Microsoft Entra ID et obtenez l’ID client de votre code.
  2. Créez un utilisateur de base de données qui représente l’application. (Terminé plus haut dans la section Créer des utilisateurs contenus mappés aux identités Microsoft Entra.)
  3. Créez un certificat sur l’ordinateur client qui exécute l’application.
  4. Ajoutez le certificat en tant que clé pour votre application.

Exemple de chaîne de connexion. Remplacez <database_name> par le nom de votre base de données :

string ConnectionString = @"Data Source=<database_name>.database.windows.net; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.AccessToken = "Your JWT token";
conn.Open();

Pour plus d’informations, consultez le Blog de sécurité de SQL Server. Pour plus d’informations sur l’ajout de certificat, consultez Bien démarrer avec l’authentification par certificat dans Microsoft Entra ID.

sqlcmd

Les instructions suivantes se connectent à l’aide de la version 13.1 de sqlcmd. Télécharger Utilitaires de ligne de commande Microsoft 14.0 pour SQL Server.

Remarque

sqlcmd avec la commande -G ne fonctionne pas avec les identités système et nécessite une connexion du principal de l’utilisateur.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Résoudre les problèmes d’authentification Microsoft Entra

Pour obtenir des conseils sur la résolution des problèmes liés à l’authentification Microsoft Entra, consultez Blog : résolution des problèmes liés à l’authentification Azure AD avec Azure SQL DB et DW.