Utilisateurs de base de données autonome - Rendre votre base de données portable

Faites appel à des utilisateurs de base de données autonome pour authentifier les connexions SQL Server et SQL Database au niveau de la base de données. Une base de données autonome est une base de données isolée des autres bases de données et de la instance de SQL Server/SQL Database (et de la base de données master) qui héberge la base de données. SQL Server prend en charge les utilisateurs de base de données autonome pour Windows et l'authentification SQL Server. Si vous utilisez SQL Database, associez les utilisateurs de base de données autonome à des règles de pare-feu au niveau de la base de données. Cette rubrique examine les avantages liés à l'utilisation du modèle de base de données autonome et les différences qu'il présente par rapport au modèle traditionnel de connexion/utilisateur et aux règles de pare-feu Windows ou au niveau du serveur. Le recours au modèle traditionnel de connexion/utilisateur et aux règles de pare-feu au niveau du serveur peut encore s'avérer nécessaire pour mettre en œuvre une logique métier d'application, des critères de facilité de gestion ou des scénarios spécifiques.

Notes

Microsoft travaille actuellement à faire évoluer le service SQL Database et à améliorer les contrats de niveau de service garantis. À l'avenir, vous devrez peut-être basculer vers le modèle d'utilisateurs de base de données autonome et vers les règles de pare-feu étendues à la base de données pour bénéficier d'un contrat de niveau de service offrant une meilleure disponibilité et d'une fréquence de connexion maximale plus élevée pour une base de données particulière. Microsoft vous invite à prendre en compte ces changements dès aujourd'hui.

Connexion traditionnelle et modèle utilisateur

Dans le modèle traditionnel de connexion, les utilisateurs Windows ou les membres des groupes Windows se connectent à Moteur de base de données en fournissant des informations d'identification utilisateur ou groupe authentifiées par Windows. Ou la connexion fournit à la fois un nom et un mot de passe et se connecte à l’aide de l’authentification SQL Server (qui est la seule option lors de la connexion à SQL Database). Dans les deux cas, la base de données MASTER doit avoir une connexion qui correspond aux informations d'identification de connexion. Après que Moteur de base de données a confirmé les informations d'identification de l'authentification Windows ou a authentifié les informations d'identification de l'authentification SQL Server , la connexion tente généralement de se connecter à une base de données utilisateur. Pour vous connecter à une base de données utilisateur, la connexion doit pouvoir être mappée (autrement dit, associée) à un utilisateur de base de données de la base de données utilisateur. La chaîne de connexion peut également spécifier la connexion à une base de données spécifique, facultative dans SQL Server , mais obligatoire dans SQL Database.

L'important est que la connexion (de la base de données MASTER) et l'utilisateur (de la base de données utilisateur) doivent exister et être liés entre eux. Cela signifie que la connexion à la base de données utilisateur a une dépendance à l’égard de la connexion de la base de données MASTER, ce qui limite la capacité de la base de données à être déplacée vers un autre serveur d’hébergement SQL Server ou Azure SQL Database . Et si, pour une raison quelconque, une connexion à la base de données MASTER n'est pas disponible (par exemple, un basculement en cours), le temps global de connexion augmente ou la connexion peut expirer. Il peut en résulter une réduction de l'extensibilité de la connexion.

Modèle utilisateur de base de données autonome

Dans le modèle utilisateur de la base de données autonome, la connexion de la base de données MASTER n'est pas présente. Au lieu de cela, le processus d'authentification se produit sur la base de données utilisateur, et l'utilisateur de base de données de la base de données utilisateur n'a pas de connexion associée dans la base de données MASTER. Le modèle utilisateur de base de données autonome prend en charge à la fois l’authentification Authentification Windows (en SQL Server) et l’authentification SQL Server (dans les SQL Server et les SQL Database). Pour vous connecter en tant qu'utilisateur de base de données autonome, la chaîne de connexion doit toujours contenir un paramètre de la base de données utilisateur afin que Moteur de base de données sache quelle base de données est chargée de gérer le processus d'authentification. L'activité de l'utilisateur de base de données autonome étant limitée à l'authentification de base de données, lorsque vous vous connectez en tant qu'utilisateur de base de données autonome, le compte d'utilisateur base de données doit être créé indépendamment dans chaque base de données dont l'utilisateur a besoin. Pour modifier les bases de données, les utilisateurs SQL Database doivent créer une connexion. Les utilisateurs de base de données autonome dans SQL Server peuvent modifier les bases de données si un même utilisateur est présent dans une autre base de données.

Pour SQL Database, aucune modification n’est nécessaire à la chaîne de connexion lors du passage du modèle traditionnel au modèle utilisateur de base de données autonome. Pour les connexions SQL Server , le nom de la base de données doit être ajoutée à la chaîne de connexion, s’il n'est pas déjà présent.

Important

Lorsque vous utilisez le modèle traditionnel, les rôles de niveau serveur et les autorisations de niveau serveur peuvent limiter l'accès à toutes les bases de données. Lorsque vous utilisez le modèle de base de données autonome, les propriétaires et les utilisateurs de base de données ayant l'autorisation ALTER ANY USER peuvent accorder l'accès à la base de données. Cela réduit le contrôle d'accès des connexions serveur dotées de privilèges élevés et étend le contrôle d'accès pour inclure les utilisateurs de base de données à privilèges élevés.

Pare-feux

SQL Server

Les règles de pare-feu Windows s'appliquent à toutes les connexions et ont les mêmes effets sur les connexions (connexions de modèle traditionnel) et les utilisateurs de base de données autonome. Pour plus d'informations sur le pare-feu Windows, consultez Configurer un pare-feu Windows pour accéder au moteur de base de données.

SQL Database Pare-feux

SQL Database permet des règles de pare-feu distinctes pour les connexions au niveau serveur (connexions) et pour les connexions au niveau base de données (utilisateurs de base de données autonome). Quand vous vous connectez à une base de données utilisateur, les règles de pare-feu au niveau de la base de données sont contrôlées en premier. Si aucune règle n'autorise l'accès à la base de données, les règles de pare-feu au niveau serveur sont contrôlées, ce qui nécessite un accès à la base de données MASTER du serveur logique. L'association de règles de pare-feu au niveau de la base de données et d'utilisateurs de base de données autonome peut éliminer la nécessité d'accéder à la base de données MASTER du serveur pendant la connexion, d'où un avantage potentiel en matière d'extensibilité de la connexion.

Pour plus d'informations sur les règles de pare-feu SQL Database , consultez les rubriques suivantes :

Différences de syntaxe

Modèle traditionnel Modèle utilisateur de base de données autonome
Si une connexion est établie à la base de données MASTER :

CREATE LOGIN login_name WITH PASSWORD = 'strong_password';

Ensuite, si une connexion est établie à une base de données utilisateur :

CREATE USER 'user_name' FOR LOGIN 'login_name';
Si une connexion est établie à une base de données utilisateur :

CREATE USER user_name WITH PASSWORD = 'strong_password';
Modèle traditionnel Modèle utilisateur de base de données autonome
Pour modifier un mot de passe dans le contexte d'une base de données MASTER :

ALTER LOGIN login_name WITH PASSWORD = 'strong_password';
Pour modifier un mot de passe dans le contexte d'une base de données utilisateur :

ALTER USER user_name WITH PASSWORD = 'strong_password';

Notes

  • Dans SQL Server, les utilisateurs de base de données autonome doivent être activés pour l'instance de SQL Server. Pour plus d’informations, consultez contained database authentication (option de configuration de serveur).

  • Les connexions et les utilisateurs de base de données autonome sans chevauchement de noms peuvent coexister dans vos applications.

  • S’il existe une connexion dans la base de données MASTER avec le nom nom1 et que vous créez un utilisateur de base de données autonome nommé nom1, lorsqu'un nom de base de données est fourni dans la chaîne de connexion, le contexte de l'utilisateur de base de données est choisi à la place du contexte de connexion lors de la connexion à la base de données. Autrement dit, les utilisateurs de base de données autonome sont prioritaires sur les connexions portant le même nom.

  • Dans SQL Database, le nom de l'utilisateur de base de données autonome ne peut pas être le même que celui du compte d'administrateur du serveur.

  • Le compte d'administrateur du serveur SQL Database ne peut jamais être un utilisateur de base de données autonome. L'administrateur du serveur dispose d'autorisations suffisantes pour créer et gérer les utilisateurs de base de données autonome. L'administrateur du serveur peut accorder des autorisations aux utilisateurs de base de données autonome sur les bases de données utilisateur.

  • Étant donné que les utilisateurs de base de données autonome sont des principaux au niveau de la base de données, vous devez créer ces utilisateurs dans chaque base de données où vous souhaitez les utiliser. L'identité est limitée à la base de données. En ce sens, elle est indépendante en tous points de l'identité d'un utilisateur possédant un nom et un mot de passe identiques dans une autre base de données située sur le même serveur.

  • Définissez des mots de passe avec un niveau de force semblable à celui des mots de passe utilisés normalement pour les connexions.

Voir aussi

Bases de données autonomes
Meilleures pratiques de sécurité recommandées avec les bases de données autonomes
CRÉER UN UTILISATEUR (Transact-SQL)