Principaux (moteur de base de données)

S’applique à : ouiSQL Server (toutes les versions prises en charge) OuiAzure SQL Database OuiAzure SQL Managed Instance ouiAzure Synapse Analytics OuiParallel Data Warehouse

Les principaux sont des entités qui peuvent demander des ressources SQL Server . Comme les autres composants du modèle d'autorisation SQL Server , les principaux peuvent être ordonnés de façon hiérarchique. La portée de l’influence d’un principal dépend de la portée de sa définition : Windows, serveur, base de données ; et du fait que le principal est indivisible ou qu'il s’agit d’une collection. Une connexion Windows est un exemple de principal indivisible et un groupe Windows est un exemple de principal constituant une collection. Chaque principal a un identificateur de sécurité (SID). Cette rubrique s’applique à toutes les versions de SQL Server, mais les principaux au niveau du serveur dans SQL Database et Azure Synapse Analytics présentent certaines restrictions.

Principaux au niveau de SQL Server

  • Connexion d’authentification SQL Server
  • Connexion d’authentification Windows pour un utilisateur Windows
  • Connexion d’authentification Windows pour un groupe Windows
  • Connexion d’authentification Azure Active Directory pour un utilisateur AD
  • Connexion d’authentification Azure Active Directory pour un groupe AD
  • Rôle serveur

Principaux au niveau des bases de données

  • Utilisateur de base de données (il existe 12 types d’utilisateurs. Pour plus d’informations, consultez CREATE USER .)
  • Rôle de base de données
  • Rôle d'application

Connexion sa

La connexion SQL Server sa est un principal au niveau du serveur. Par défaut, elle est créée lorsqu'une instance est installée. À compter de SQL Server 2005 (9.x), la base de données par défaut de sa est MASTER. Il s'agit là d'une différence par rapport aux versions antérieures de SQL Server. La connexion sa est un membre du rôle au niveau du serveur fixe sysadmin. La connexion sa a toutes les autorisations sur le serveur et ne peut pas être limitée. La connexion sa ne peut pas être supprimée, mais elle peut être désactivée afin que personne ne puisse l’utiliser.

Utilisateur dbo et schéma dbo

L’utilisateur dbo est un principal d’utilisateur spécial dans chaque base de données. Tous les administrateurs de SQL Server, les membres du rôle de serveur fixe sysadmin, la connexion sa et les propriétaires de la base de données accèdent aux bases de données en tant qu’utilisateur dbo. L’utilisateur dbo a toutes les autorisations dans la base de données et ne peut pas être limité ou supprimé. dbo signifie « database owner » (propriétaire de base de données), mais le compte d’utilisateur dbo n’est pas identique au rôle de base de données fixe db_owner, et le rôle de base de données fixe db_owner n’est pas identique au compte d’utilisateur qui est inscrit en tant que propriétaire de la base de données.
L’utilisateur dbo est propriétaire du schéma dbo. Le schéma dbo est le schéma par défaut pour tous les utilisateurs, sauf si un autre schéma est spécifié. Le schéma dbo ne peut pas être supprimé.

Rôle serveur public et rôle de base de données

Chaque connexion appartient au rôle serveur fixe public et chaque utilisateur de base de données appartient au rôle de base de données public. Quand des autorisations spécifiques sur un élément sécurisable n’ont pas été accordées ni refusées à une connexion ou à un utilisateur, celui-ci ou celle-ci hérite des autorisations accordées à public sur cet élément sécurisable. Le rôle serveur fixe public et le rôle de base de données fixe public ne peuvent pas être supprimés. Toutefois, vous pouvez révoquer des autorisations des rôles public. De nombreuses autorisations sont affectées par défaut aux rôles public. La plupart de ces autorisations sont nécessaires pour les opérations de routine dans la base de données (le genre de choses que tout le monde doit pouvoir faire). Soyez prudent lors de la révocation des autorisations de l’utilisateur ou de la connexion public, car cela affecte tous les utilisateurs/connexions. En général, vous ne devez pas refuser d’autorisations à public, car l’instruction deny remplace toutes les instructions grant que vous pouvez exécuter pour des utilisateurs spécifiques.

INFORMATION_SCHEMA et schémas et utilisateurs sys

Chaque base de données inclut deux entités qui apparaissent comme des utilisateurs dans des affichages catalogue : INFORMATION_SCHEMA et sys. Ces entités sont nécessaires pour une utilisation interne par le moteur de base de données. Elles ne peuvent être ni modifiées ni supprimées.

Connexions SQL Server basées sur des certificats

Les principaux de serveur compris entre deux signes dièse (##) sont destinés uniquement à une utilisation système interne. Les principaux suivants sont créés à partir de certificats lors de l'installation de SQL Server ; ils ne doivent pas être supprimés.

  • ##MS_SQLResourceSigningCertificate##
  • ##MS_SQLReplicationSigningCertificate##
  • ##MS_SQLAuthenticatorCertificate##
  • ##MS_AgentSigningCertificate##
  • ##MS_PolicyEventProcessingLogin##
  • ##MS_PolicySigningCertificate##
  • ##MS_PolicyTsqlExecutionLogin##

Ces comptes de principaux n’ont pas de mots de passe modifiables par les administrateurs, car ils utilisent des certificats envoyés à Microsoft.

Utilisateur invité

Chaque base de données inclut un guest. Les autorisations accordées à l'utilisateur guest sont héritées par les utilisateurs qui ont accès à la base de données, mais n'ont pas de compte d'utilisateur dans la base de données. L’utilisateur guest ne peut pas être supprimé, mais vous pouvez le désactiver en révoquant son autorisation CONNECT. Vous pouvez révoquer l’autorisation CONNECT en exécutant l’instruction REVOKE CONNECT FROM GUEST; dans n’importe quelle base de données autre que master ou tempdb.

Pour plus d’informations sur la conception d’un système d’autorisations, voir Getting Started with Database Engine Permissions.

Les rubriques suivantes sont incluses dans cette section de la documentation en ligne de SQL Server :

Voir aussi

Sécurisation de SQL Server
sys.database_principals (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.sql_logins (Transact-SQL)
sys.database_role_members (Transact-SQL)
Rôles de niveau serveur
Rôles au niveau de la base de données