Configurer SQL Database, SQL Managed Instance et Azure Synapse Analytics pour autoriser l'accès aux bases de donnéesAuthorize database access to SQL Database, SQL Managed Instance, and Azure Synapse Analytics

S’APPLIQUE À : Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Cet article porte sur les points suivants :In this article, you learn about:

  • 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éesOptions for configuring Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse Analytics to enable users to perform administrative tasks and to access the data stored in these databases.
  • Configuration de l'accès et des autorisations après la création initiale d'un serveurThe access and authorization configuration after initially creating a new server.
  • Ajout de connexions et de comptes d'utilisateur dans la base de données MASTER, puis attribution des autorisations d'administration aux comptesHow to add logins and user accounts in the master database and user accounts and then grant these accounts administrative permissions.
  • Ajout de comptes d'utilisateur dans des bases de données utilisateur, associés à des connexions ou en tant que comptes d'utilisateur autonomesHow to add user accounts in user databases, either associated with logins or as contained user accounts.
  • 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 explicitesConfigure user accounts with permissions in user databases by using database roles and explicit permissions.

Importante

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 qui gère les bases de données d'Azure SQL Database et d'Azure Synapse.Databases in Azure SQL Database, Azure SQL Managed Instance, and Azure Synapse are referred to collectively in the remainder of this article as databases, and the server is referring to the server that manages databases for Azure SQL Database and Azure Synapse.

Authentification et autorisationAuthentication and authorization

L’authentification est le processus consistant à prouver que l’utilisateur est bien celui qu’il prétend être.Authentication is the process of proving the user is who they claim to be. Un utilisateur se connecte à une base de données à l’aide d’un compte d’utilisateur.A user connects to a database using a user account. Lorsqu’un utilisateur tente de se connecter à une base de données, il fournit un compte d’utilisateur et des informations d’authentification.When a user attempts to connect to a database, they provide a user account and authentication information. L’utilisateur est authentifié à l’aide de l’une des deux méthodes d’authentification suivantes :The user is authenticated using one of the following two authentication methods:

  • Authentification SQL.SQL authentication.

    Avec cette méthode d’authentification, l’utilisateur envoie un nom de compte d’utilisateur et un mot de passe associé pour établir une connexion.With this authentication method, the user submits a user account name and associated password to establish a connection. Ce mot de passe est stocké dans la base de données master pour les comptes d’utilisateur liés à une connexion ou stockés dans la base de données contenant les comptes d’utilisateur non liés à une connexion.This password is stored in the master database for user accounts linked to a login or stored in the database containing the user accounts not linked to a login.

  • Authentification Azure Active DirectoryAzure Active Directory Authentication

    Avec cette méthode d'authentification, l'utilisateur soumet un nom de compte d'utilisateur et demande que le service utilise les informations d'identification stockées dans Azure Active Directory (Azure AD).With this authentication method, the user submits a user account name and requests that the service use the credential information stored in Azure Active Directory (Azure AD).

Connexions et utilisateurs : dans une base de données, un compte d'utilisateur peut être associé à une connexion stockée dans la base de données MASTER, ou il peut s'agir d'un nom d'utilisateur stocké dans une base de données individuelle.Logins and users: A user account in a database can be associated with a login that is stored in the master database or can be a user name that is stored in an individual database.

  • Une connexion est un compte individuel dans la base de données master, auquel un compte d’utilisateur dans une ou plusieurs bases de données peut être lié.A login is an individual account in the master database, to which a user account in one or more databases can be linked. Avec une connexion, les informations d’identification du compte d’utilisateur sont stockées avec la connexion.With a login, the credential information for the user account is stored with the login.
  • 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.A user account is an individual account in any database that may be, but does not have to be, linked to a login. Avec un compte d’utilisateur qui n’est pas lié à une connexion, les informations d’identification sont stockées avec le compte d’utilisateur.With a user account that is not linked to a login, the credential information is stored with the user account.

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.Authorization to access data and perform various actions are managed using database roles and explicit permissions. L’autorisation fait référence aux autorisations accordées à un utilisateur et détermine ce que l’utilisateur est autorisé à faire.Authorization refers to the permissions assigned to a user, and determines what that user is allowed to do. 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.Authorization is controlled by your user account's database role memberships and object-level permissions. Nous vous recommandons, à titre de meilleure pratique, d’accorder aux utilisateurs des privilèges aussi réduits que possible.As a best practice, you should grant users the least privileges necessary.

Connexions et comptes d’utilisateur existants après la création d’une base de donnéesExisting logins and user accounts after creating a new database

Lorsque vous déployez Azure SQL pour la première fois, vous spécifiez une connexion d'administrateur et un mot de passe associé à cette connexion.When you first deploy Azure SQL, you specify an admin login and an associated password for that login. Ce compte d’administration est appelé administration de serveur. La configuration suivante des connexions et des utilisateurs dans les bases de données master et utilisateur se produit pendant le déploiement :This administrative account is called Server admin. The following configuration of logins and users in the master and user databases occurs during deployment:

  • Une connexion SQL avec des privilèges d’administrateur est créée à l’aide du nom de connexion que vous avez spécifié.A SQL login with administrative privileges is created using the login name you specified. Une connexion est un compte d'utilisateur individuel qui permet de se connecter à SQL Database, SQL Managed Instance et Azure Synapse.A login is an individual user account for logging in to SQL Database, SQL Managed Instance, and 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.This login is granted full administrative permissions on all databases as a server-level principal. La connexion dispose de toutes les autorisations disponibles et ne peut pas être limitée.The login has all available permissions and can't be limited. 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).In a SQL Managed Instance, this login is added to the sysadmin fixed server role (this role does not exist in Azure SQL Database).
  • Un compte d’utilisateur appelé dbo est créé pour cette connexion dans chaque base de données utilisateur.A user account called dbo is created for this login in each user database. L’utilisateur dbo dispose de toutes les autorisations de base de données dans la base de données et est mappé au rôle de base de données fixe db_owner.The dbo user has all database permissions in the database and is mapped to the db_owner fixed database role. Des rôles de bases de données fixes supplémentaires sont décrits plus loin dans cet article.Additional fixed database roles are discussed later in this article.

Pour identifier les comptes d’administrateur d’une base de données, ouvrez le Portail Azure, puis accédez à l’onglet Propriétés de votre serveur ou instance gérée.To identify the administrator accounts for a database, open the Azure portal, and navigate to the Properties tab of your server or managed instance.

Administrateurs SQL Server

Capture d’écran mettant en évidence l’option de menu Propriétés.

Importante

Une fois créé, le nom de connexion de l'administrateur n'est pas modifiable.The admin login name can't be changed after it has been created. 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.To reset the password for the server admin, go to the Azure portal, click SQL Servers, select the server from the list, and then click Reset Password. 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.To reset the password for the SQL Managed Instance, go to the Azure portal, click the instance, and click Reset password. Vous pouvez également utiliser PowerShell ou Azure CLI.You can also use PowerShell or the Azure CLI.

Créer des connexions et des utilisateurs supplémentaires disposant d’autorisations administrativesCreate additional logins and users having administrative permissions

À 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.At this point, your server or managed instance is only configured for access using a single SQL login and user account. 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) :To create additional logins with full or partial administrative permissions, you have the following options (depending on your deployment mode):

  • Créer un compte d'administrateur Azure Active Directory disposant d'autorisations d'administration complètesCreate an Azure Active Directory administrator account with full administrative permissions

    Activez l’authentification Azure Active Directory et créez une connexion d’administrateur Azure AD.Enable Azure Active Directory authentication and create an Azure AD administrator login. Un compte Azure Active Directory peut être configuré en tant qu'administrateur du déploiement Azure SQL avec des autorisations d'administration complètes.One Azure Active Directory account can be configured as an administrator of the Azure SQL deployment with full administrative permissions. Il peut s’agir d’un compte de groupe de sécurité ou individuel.This account can be either an individual or security group account. Un administrateur Azure AD doit être configuré si vous souhaitez utiliser des comptes Azure AD pour vous connecter à SQL Database, SQL Managed Instance ou Azure Synapse.An Azure AD administrator must be configured if you want to use Azure AD accounts to connect to SQL Database, SQL Managed Instance, or Azure Synapse. Pour plus d'informations sur l'activation de l'authentification Azure AD pour tous les types de déploiements Azure SQL, consultez les articles suivants :For detailed information on enabling Azure AD authentication for all Azure SQL deployment types, see the following articles:

  • Dans SQL Managed Instance, créer des connexions SQL avec des autorisations d'administration complètesIn SQL Managed Instance, create SQL logins with full administrative permissions

  • Dans SQL Database, créer des connexions SQL avec des autorisations d'administration limitéesIn SQL Database, create SQL logins with limited administrative permissions

    • Créez une connexion SQL supplémentaire dans la base de données MASTER.Create an additional SQL login in the master database.
    • Créez un compte d'utilisateur dans la base de données MASTER associée à cette nouvelle connexion.Create a user account in the master database associated with this new login.
    • Dans la base de données master, ajoutez le compte d’utilisateur au rôle dbmanager, au rôle loginmanager ou aux deux en utilisant l’instruction ALTER ROLE (pour Azure Synapse, utilisez l’instruction sp_addrolemember).Add the user account to the dbmanager, the loginmanager role, or both in the master database using the ALTER ROLE statement (for Azure Synapse, use the sp_addrolemember statement).

    Nota

    Les rôles dbmanager et loginmanager ne se rapportent pas aux déploiements SQL Managed Instance.dbmanager and loginmanager roles do not pertain to SQL Managed Instance deployments.

    Les membres de ces 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.Members of these special master database roles for Azure SQL Database have authority to create and manage databases or to create and manage logins. 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.In databases created by a user that is a member of the dbmanager role, the member is mapped to the db_owner fixed database role and can log into and manage that database using the dbo user account. Ces rôles n’ont pas d’autorisations explicites en dehors de la base de données master.These roles have no explicit permissions outside of the master database.

    Importante

    Vous ne pouvez pas créer de connexion SQL supplémentaire avec des autorisations d'administration complètes dans SQL Database.You can't create an additional SQL login with full administrative permissions in SQL Database.

Créer des comptes pour les utilisateurs non-administrateursCreate accounts for non-administrator users

Vous pouvez créer des comptes pour les utilisateurs non-administrateurs à l’aide de l’une des deux méthodes suivantes :You can create accounts for non-administrative users using one of two methods:

  • Créer une connexionCreate a login

    Créez une connexion SQL dans la base de données master.Create a SQL login in the master database. 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.Then create a user account in each database to which that user needs access and associate the user account with that login. 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.This approach is preferred when the user must access multiple databases and you wish to keep the passwords synchronized. 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.However, this approach has complexities when used with geo-replication as the login must be created on both the primary server and the secondary server(s). Pour plus d’informations, consultez Configurer et gérer la sécurité Azure SQL Database pour la géorestauration ou le basculement.For more information, see Configure and manage Azure SQL Database security for geo-restore or failover.

  • Créer un compte d’utilisateurCreate a user account

    Créez un compte d’utilisateur dans la base de données à laquelle un utilisateur a besoin d’accéder (également appelé utilisateur autonome).Create a user account in the database to which a user needs access (also called a contained user).

    • Avec SQL Database, vous pouvez toujours créer ce type de compte d'utilisateur.With SQL Database, you can always create this type of user account.
    • Avec l'instance gérée SQL Managed Instance qui prend en charge les principaux de serveur Azure AD, vous pouvez créer des comptes d'utilisateur pour l'authentification auprès de SQL Managed Instance sans avoir à créer les utilisateurs de la base de données en tant qu'utilisateurs autonomes.With SQL Managed Instance supporting Azure AD server principals, you can create user accounts to authenticate to the SQL Managed Instance without requiring database users to be created as a contained database user.

    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.With this approach, the user authentication information is stored in each database, and replicated to geo-replicated databases automatically. Toutefois, si le même compte existe dans plusieurs bases de données et que vous utilisez l'authentification Azure SQL, vous devez synchroniser manuellement les mots de passe.However, if the same account exists in multiple databases and you are using Azure SQL Authentication, you must keep the passwords synchronized manually. 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.Additionally, if a user has an account in different databases with different passwords, remembering those passwords can become a problem.

Importante

Pour créer des utilisateurs autonomes mappés à des identités Azure AD, vous devez être connecté à l'aide d'un compte Azure AD qui dispose du rôle d'administrateur dans la base de données d'Azure SQL Database.To create contained users mapped to Azure AD identities, you must be logged in using an Azure AD account that is an administrator in the database in Azure SQL Database. Dans SQL Managed Instance, une connexion SQL avec des autorisations sysadmin peut également créer une connexion ou un utilisateur Azure AD.In SQL Managed Instance, a SQL login with sysadmin permissions can also create an Azure AD login or user.

Pour obtenir des exemples montrant comment créer des connexions et des utilisateurs, consultez :For examples showing how to create logins and users, see:

Sugerencia

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.For a security tutorial that includes creating users in Azure SQL Database, see Tutorial: Secure Azure SQL Database.

Utilisation des rôles de base de données fixes et personnalisésUsing fixed and custom database roles

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.After creating a user account in a database, either based on a login or as a contained user, you can authorize that user to perform various actions and to access data in a particular database. Vous pouvez utiliser les méthodes suivantes pour autoriser l’accès :You can use the following methods to authorize access:

  • Rôles de base de données fixesFixed database roles

    Ajoutez le compte d’utilisateur à un rôle de base de données fixe.Add the user account to a fixed database role. Il existe 9 rôles de base de données fixes, chacun avec un ensemble défini d’autorisations.There are 9 fixed database roles, each with a defined set of permissions. 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.The most common fixed database roles are: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, and db_denydatareader. db_owner est couramment utilisé pour accorder toutes les autorisations à quelques utilisateurs seulement.db_owner is commonly used to grant full permission to only a few users. 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.The other fixed database roles are useful for getting a simple database in development quickly, but are not recommended for most production databases. 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.For example, the db_datareader fixed database role grants read access to every table in the database, which is more than is strictly necessary.

  • Rôle de base de données personnaliséCustom database role

    Créez un rôle de base de données personnalisé à l’aide de l’instruction CREATE ROLE.Create a custom database role using the CREATE ROLE statement. 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.A custom role enables you to create your own user-defined database roles and carefully grant each role the least permissions necessary for the business need. Vous pouvez ensuite ajouter des utilisateurs au rôle personnalisé.You can then add users to the custom role. Lorsqu’un utilisateur est membre de plusieurs rôles, toutes les autorisations sont agrégées.When a user is a member of multiple roles, they aggregate the permissions of them all.

  • Accorder des autorisations directementGrant permissions directly

    Accordez directement des autorisations au compte d’utilisateur.Grant the user account permissions directly. Il existe plus de 100 autorisations qui peuvent être accordées ou refusées individuellement dans la base de données SQL.There are over 100 permissions that can be individually granted or denied in SQL Database. La plupart de ces autorisations sont imbriquées.Many of these permissions are nested. Par exemple, l’autorisation UPDATE sur un schéma inclut l’autorisation UPDATE sur chaque table dans ce schéma.For example, the UPDATE permission on a schema includes the UPDATE permission on each table within that schema. Comme dans la plupart des systèmes d’autorisation, le refus d’une autorisation remplace l’octroi.As in most permission systems, the denial of a permission overrides a grant. 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.Because of the nested nature and the number of permissions, it can take careful study to design an appropriate permission system to properly protect your database. 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.Start with the list of permissions at Permissions (Database Engine) and review the poster size graphic of the permissions.

Utilisation de groupesUsing groups

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.Efficient access management uses permissions assigned to Active Directory security groups and fixed or custom roles instead of to individual users.

  • Lorsque vous utilisez l’authentification Azure Active Directory, placez les utilisateurs Azure Active Directory dans un groupe de sécurité Azure Active Directory.When using Azure Active Directory authentication, put Azure Active Directory users into an Azure Active Directory security group. Créez un utilisateur de base de données autonome pour le groupe.Create a contained database user for the group. 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.Add one or more database users as a member to custom or builtin database roles with the specific permissions appropriate to that group of users.

  • Lorsque vous utilisez l’authentification SQL, créez des utilisateurs de base de données autonome dans la base de données.When using SQL authentication, create contained database users in the database. 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.Place one or more database users into a custom database role with specific permissions appropriate to that group of users.

    Nota

    Vous pouvez également utiliser des groupes pour les utilisateurs de bases de données non autonomes.You can also use groups for non-contained database users.

Vous devez vous familiariser avec les fonctionnalités suivantes qui peuvent être utilisées pour limiter ou élever les autorisations :You should familiarize yourself with the following features that can be used to limit or elevate permissions:

Étapes suivantesNext steps

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é.For an overview of all Azure SQL Database and SQL Managed Instance security features, see Security overview.