Configurer SQL Database, SQL Managed Instance et Azure Synapse Analytics pour autoriser l'accès aux bases de données

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

Cet article porte sur les points suivants :

  • Options de configuration d'Azure SQL Database, d'Azure SQL Managed Instance et d'Azure Synapse Analytics pour permettre aux utilisateurs d'effectuer des tâches d'administration et d'accéder aux données stockées dans ces bases de données
  • Configuration de l'accès et des autorisations après la création initiale d'un serveur
  • Ajout de connexions et de comptes d’utilisateur dans la base de données master, puis attribution des autorisations d’administration aux comptes
  • Ajout de comptes d'utilisateur dans des bases de données utilisateur, associés à des connexions ou en tant que comptes d'utilisateur autonomes
  • Configuration de comptes d'utilisateur avec des autorisations dans des bases de données utilisateur à l'aide de rôles de base de données et d'autorisations explicites

Important

Dans cet article, les bases de données d’Azure SQL Database, d’Azure SQL Managed Instance et d’Azure Synapse sont collectivement désignées sous le nom de « bases de données », et le terme « serveur » fait référence au serveur logique qui gère les bases de données d’Azure SQL Database et d’Azure Synapse.

Remarque

Microsoft Entra ID était anciennement appelé Azure Active Directory (Azure AD).

Authentification et autorisation

L’authentification est le processus consistant à prouver que l’utilisateur est bien celui qu’il prétend être. Un utilisateur se connecte à une base de données à l’aide d’un compte d’utilisateur. Lorsqu’un utilisateur tente de se connecter à une base de données, il fournit un compte d’utilisateur et des informations d’authentification. L’utilisateur est authentifié à l’aide de l’une des deux méthodes d’authentification suivantes :

Connexions et utilisateurs : Un compte d’utilisateur dans une base de données peut être associé à une connexion stockée dans la base de données master ou peut être un nom d’utilisateur stocké dans une base de données individuelle.

  • Une connexion est un compte individuel qui se trouve dans la base de données master, auquel un compte d’utilisateur situé dans une ou plusieurs bases de données peut être lié. Avec une connexion, les informations d’identification du compte d’utilisateur sont stockées avec la connexion.
  • Un compte d'utilisateur est un compte individuel qui figure dans une base de données et qui peut être lié à une connexion, mais cela n'est pas obligatoire. Avec un compte d’utilisateur qui n’est pas lié à une connexion, les informations d’identification sont stockées avec le compte d’utilisateur.

L’autorisation d’accéder aux données et d’effectuer diverses actions sont gérées à l’aide des rôles de base de données et des autorisations explicites. L’autorisation fait référence aux autorisations accordées à un utilisateur et détermine ce que l’utilisateur est autorisé à faire. Elle est contrôlée par les appartenances aux rôles et les autorisations au niveau objet de la base de données de votre compte d’utilisateur. Nous vous recommandons, à titre de meilleure pratique, d’accorder aux utilisateurs des privilèges aussi réduits que possible.

Connexions et comptes d’utilisateur existants après la création d’une base de données

Lorsque vous déployez Azure SQL pour la première fois, vous pouvez spécifier un nom de connexion et un mot de passe pour un type spécial de connexion administrative, Administrateur du serveur. La configuration suivante des connexions et des utilisateurs dans les bases de données maître et utilisateur se produit lors du le déploiement :

  • Une connexion SQL avec des privilèges d’administrateur est créée à l’aide du nom de connexion que vous avez spécifié. Une connexion est un compte individuel qui permet de se connecter à SQL Database, SQL Managed Instance et Azure Synapse.
  • Cette connexion se voit accorder des autorisations d’administration complètes sur toutes les bases de données en tant que principal au niveau du serveur. La connexion dispose de toutes les autorisations disponibles et ne peut pas être limitée. Dans SQL Managed Instance, cette connexion est ajoutée au rôle serveur fixe sysadmin (ce rôle n'existe pas dans Azure SQL Database).
  • Lorsque ce compte se connecte à une base de données, il est mis en correspondance avec le compte d’utilisateur spécial dbo (compte d’utilisateur, qui existe dans chaque base de données utilisateur). L’utilisateur dbo dispose de toutes les autorisations de base de données dans la base de données et est membre du rôle de base de données fixe db_owner. Des rôles de bases de données fixes supplémentaires sont décrits plus loin dans cet article.

Pour identifier le compte Administrateur du serveur d’un serveur logique, ouvrez le portail Azure, puis accédez à l’onglet Propriétés de votre serveur ou instance gérée.

Screenshot shows the SQL Server Properties page where you can obtain the Server admin login and Microsoft Entra admin values.

Screenshot shows the SQL managed instance Properties page where you can obtain the login and Microsoft Entra admin values.

Important

Le nom du compte Administrateur du serveur ne peut pas être modifié une fois qu’il a été créé. Pour réinitialiser le mot de passe pour l’administrateur du serveur, accédez au portail Azure, cliquez sur Serveurs SQL, sélectionnez le serveur dans la liste, puis cliquez sur Réinitialiser le mot de passe. Pour réinitialiser le mot de passe de SQL Managed Instance, accédez au portail Azure, cliquez sur l'instance, puis cliquez sur Réinitialiser le mot de passe. Vous pouvez également utiliser PowerShell ou Azure CLI.

Créer des connexions et des utilisateurs supplémentaires disposant d’autorisations administratives

À ce stade, votre serveur ou instance gérée est uniquement configuré pour l'accès à l'aide d'une connexion SQL unique et d'un compte d'utilisateur. Pour créer des connexions supplémentaires avec des autorisations d’administration complètes ou partielles, vous disposez des options suivantes (en fonction de votre mode de déploiement) :

  • Créer un compte d’administrateur Microsoft Entra avec des autorisations d’administration complètes

    Activez l’authentification Microsoft Entra et ajoutez un administrateur Microsoft Entra. Un compte Microsoft Entra peut être configuré en tant qu’administrateur du déploiement Azure SQL avec des autorisations d’administration complètes. Il peut s’agir d’un compte de groupe de sécurité ou individuel. Un administrateur Microsoft Entradoit être configuré si vous souhaitez utiliser des comptes Microsoft Entra pour vous connecter à SQL Database, SQL Managed Instance ou Azure Synapse. Pour plus d'informations sur l'activation de l'authentification Microsoft Entra pour tous les types de déploiements Azure SQL, consultez les articles suivants :

  • Dans SQL Managed Instance, créer des connexions SQL avec des autorisations d'administration complètes

    Remarque

    Les rôles dbmanager et loginmanager n’appartiennent pas aux déploiements Azure SQL Managed Instance.

  • Dans SQL Database, créer des connexions SQL avec des autorisations d'administration limitées

    • Créez une connexion SQL supplémentaire dans la base de données master.
    • Ajoutez la connexion aux rôles ##MS_DatabaseManager##, ##MS_LoginManager## et ##MS_DatabaseConnector##de niveau serveur en utilisant l’instruction ALTER SERVER ROLE.

    Les membres des rôles spéciaux de la base de données master d’Azure SQL Database peuvent créer et gérer des bases de données ou des connexions. Dans les bases de données créées par un utilisateur membre du rôle dbmanager, le membre est mappé au rôle de base de données fixe db_owner et peut se connecter à cette base de données et gérer celle-ci à l’aide du compte d’utilisateur dbo. Ces rôles n’ont pas d’autorisations explicites en dehors de la base de données master.

    Important

    Vous ne pouvez pas créer de connexion SQL supplémentaire avec des autorisations d’administration complètes dans Azure SQL Database. Seul le compte d’administrateur du serveur ou le compte d’administrateur Microsoft Entra (qui peut être un groupe Microsoft Entra) peut ajouter ou supprimer d’autres connexions chez, ou à partir de rôles serveur. Cette remarque est spécifique à Azure SQL Database.

  • Dans un pool SQL dédié Azure Synapse, créer des connexions SQL avec des autorisations d’administration limitées

    • Créez une connexion SQL supplémentaire dans la base de données master.
    • Créez un compte d’utilisateur dans la base de données master associée à cette nouvelle connexion.
    • Ajoutez le compte d’utilisateur à dbmanager, au rôle loginmanager ou aux deux, dans la base de données master en utilisant l’instruction sp_addrolemember.
  • Dans un pool SQL serverless Azure Synapse, créer des connexions SQL avec des autorisations d’administration limitées

Créer des comptes pour les utilisateurs non-administrateurs

Vous pouvez créer des comptes pour les utilisateurs non-administrateurs à l’aide de l’une des deux méthodes suivantes :

  • Créer une connexion

    Créez une connexion SQL dans la base de données master. Créez ensuite un compte d’utilisateur dans chaque base de données à laquelle cet utilisateur a besoin d’accéder et associez le compte d’utilisateur à cette connexion. Cette approche est préférable lorsque l’utilisateur doit accéder à plusieurs bases de données et que vous souhaitez synchroniser les mots de passe. Toutefois, cette approche présente des complexités lorsqu’elle est utilisée avec la géoréplication, car la connexion doit être créée sur le serveur principal et sur le ou les serveurs secondaires. Pour plus d’informations, consultez Configurer et gérer la sécurité Azure SQL Database pour la géorestauration ou le basculement.

  • Créer un compte d’utilisateur

    Créez un compte d’utilisateur dans la base de données à laquelle un utilisateur a besoin d’accéder (également appelé utilisateur autonome).

    • Avec SQL Database, vous pouvez toujours créer ce type de compte d'utilisateur.
    • Avec l'instance gérée SQL Managed Instance qui prend en charge les principaux de serveur Microsoft Entra, vous pouvez créer des comptes d'utilisateur pour l'authentification auprès de SQL Managed Instance, sans que les utilisateurs de la base de données ne soient créés en tant qu’utilisateurs de base de données autonome.

    Avec cette approche, les informations d’authentification utilisateur sont stockées dans chaque base de données et répliquées automatiquement dans les bases de données géorépliquées. Toutefois, si le même compte existe dans plusieurs bases de données et que vous utilisez l’authentification SQL, vous devez synchroniser les mots de passe manuellement. En outre, si un utilisateur a un compte dans des bases de données différentes avec différents mots de passe, la mémorisation de ces mots de passe peut devenir un problème.

Important

Pour créer des utilisateurs autonomes mappés à des identités Microsoft Entra, vous devez être connecté à l'aide d'un compte Microsoft Entra dans la base de données d'Azure SQL Database. Dans SQL Managed Instance, une connexion SQL avec des autorisations sysadmin peut également créer une connexion ou un utilisateur Microsoft Entra.

Pour obtenir des exemples montrant comment créer des connexions et des utilisateurs, consultez :

Conseil

Pour accéder à un tutoriel sur la sécurité couvrant la création d'utilisateurs dans Azure SQL Database, reportez-vous à Tutoriel : Sécuriser Azure SQL Database.

Utilisation des rôles de base de données fixes et personnalisés

Après avoir créé un compte d’utilisateur dans une base de données, sur la base d’une connexion ou d’un utilisateur autonome, vous pouvez autoriser cet utilisateur à effectuer diverses actions et à accéder aux données d’une base de données particulière. Vous pouvez utiliser les méthodes suivantes pour autoriser l’accès :

  • Rôles de base de données fixes

    Ajoutez le compte d’utilisateur à un rôle de base de données fixe. Il existe 9 rôles de base de données fixes, chacun avec un ensemble défini d’autorisations. Les rôles de base de données fixes les plus courants sont les suivants : db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter et db_denydatareader. db_owner est couramment utilisé pour accorder toutes les autorisations à quelques utilisateurs seulement. Les autres rôles de base de données fixe sont utiles pour obtenir rapidement une base de données simple en développement, mais ne sont pas recommandés pour la plupart des bases de données de production. Par exemple, le rôle de base de données fixe db_datareader accorde l’accès en lecture à toutes les tables de la base de données, ce qui est plus que le minimum nécessaire.

    • Pour ajouter un utilisateur de base de données à un rôle de base de données fixe :

  • Rôle de base de données personnalisé

    Créez un rôle de base de données personnalisé à l’aide de l’instruction CREATE ROLE. Un rôle personnalisé vous permet de créer vos propres rôles de base de données définis par l’utilisateur et d’accorder soigneusement à chaque rôle les autorisations minimales nécessaires aux besoins de l’entreprise. Vous pouvez ensuite ajouter des utilisateurs au rôle personnalisé. Lorsqu’un utilisateur est membre de plusieurs rôles, toutes les autorisations sont agrégées.

  • Accorder des autorisations directement

    Accordez directement des autorisations au compte d’utilisateur. Il existe plus de 100 autorisations qui peuvent être accordées ou refusées individuellement dans la base de données SQL. La plupart de ces autorisations sont imbriquées. Par exemple, l’autorisation UPDATE sur un schéma inclut l’autorisation UPDATE sur chaque table dans ce schéma. Comme dans la plupart des systèmes d’autorisation, le refus d’une autorisation remplace l’octroi. En raison de la nature imbriquée et du nombre d’autorisations, la plus grande attention est requise pour concevoir un système d’autorisation approprié capable de protéger correctement votre base de données. Démarrez avec la liste des autorisations sous Autorisations (moteur de base de données) et passez en revue le graphique de taille affiche des autorisations.

Utilisation de groupes

La gestion efficace de l’accès utilise des autorisations affectées à des groupes de sécurité Active Directory et des rôles fixes ou personnalisés plutôt qu’à des utilisateurs individuels.

  • Lorsque vous utilisez l’authentification Microsoft Entra, placez les utilisateurs de Microsoft Entra dans un groupe de sécurité Microsoft Entra. Créez un utilisateur de base de données autonome pour le groupe. Ajoutez un ou plusieurs utilisateurs de base de données en tant que membre de rôles de base de données personnalisés ou intégrés disposant des autorisations spécifiques appropriées pour ce groupe d’utilisateurs.

  • Lorsque vous utilisez l’authentification SQL, créez des utilisateurs de base de données autonome dans la base de données. Placez un ou plusieurs utilisateurs de base de données dans un rôle de base de données personnalisé avec des autorisations spécifiques appropriées pour ce groupe d’utilisateurs.

    Notes

    Vous pouvez également utiliser des groupes pour les utilisateurs de bases de données non autonomes.

Vous devez vous familiariser avec les fonctionnalités suivantes qui peuvent être utilisées pour limiter ou élever les autorisations :

Étapes suivantes

Pour accéder à une vue d'ensemble de toutes les fonctionnalités de sécurité d'Azure SQL Database et de SQL Managed Instance, consultez Vue d'ensemble de la sécurité.