Rôles serveur et rôles de base de données dans SQL Server (ADO.NET)
Mise à jour : November 2007
Toutes les versions de SQL Server utilisent la sécurité basée sur les rôles, qui vous permet d'attribuer des autorisations à un rôle ou à un groupe d'utilisateurs au lieu de les attribuer à des utilisateurs individuels. Les rôles serveur fixes et de base de données fixes possèdent un ensemble fixe d'autorisations qui leur sont attribuées.
Rôles serveur fixes
Les rôles serveur fixes disposent d'un ensemble fixe d'autorisations et d'une portée à l'échelle du serveur. Ils sont destinés à être utilisés pour administrer SQL Server et les autorisations qui leur sont attribuées ne peuvent pas être modifiées. Des connexions peuvent être attribuées aux rôles serveur fixes sans qu'un compte d'utilisateur figure dans une base de données.
Note de sécurité : |
---|
Le rôle serveur fixe sysadmin englobe tous les autres rôles et a une portée illimitée. N'ajoutez pas d'entités de sécurité à ce rôle à moins qu'elles soient dotées d'une confiance très élevée. Les membres du rôle sysadmin possèdent des privilèges d'administrateur irrévocables sur toutes les bases de données et ressources de serveur. |
Soyez sélectif lors de l'ajout d'utilisateurs à des rôles serveur fixes. Par exemple, le rôle bulkadmin permet aux utilisateurs d'insérer le contenu d'un fichier local quelconque dans une table, ce qui peut mettre en danger l'intégrité des données. Consultez la documentation en ligne de SQL Server 2005 pour obtenir la liste complète des rôles serveur fixes et des autorisations. Les rôles serveur fixes pour SQL Server 2000 ont les noms et jeux d'autorisations appropriés pour SQL Server 2000.
Rôles de base de données fixes
Les rôles de base de données fixes possèdent un ensemble prédéfini d'autorisations conçues pour vous permettre de gérer aisément des groupes d'autorisations. Les membres du rôle db_owner peuvent effectuer toutes les activités de configuration et de maintenance sur la base de données.
Pour plus d'informations sur les rôles prédéfinis de SQL Server, consultez les ressources répertoriées ci-dessous.
Ressource |
Description |
---|---|
Rôles au niveau serveur et Autorisations des rôles serveur fixes dans la documentation en ligne de SQL Server 2005. |
Décrit les rôles serveur fixes et les autorisations qui leur sont associées dans SQL Server 2005. |
Rôles au niveau base de données et Autorisations des rôles de base de données fixes dans la documentation en ligne de SQL Server 2005 |
Décrit les rôles de base de données fixes et les autorisations qui leur sont attribuées |
Ajout d'un membre à un rôle prédéfini dans la documentation en ligne de SQL Server 2000. |
Décrit les autorisations associées aux rôles serveur fixes et de base de données fixes et montre comment ajouter des membres à ces rôles. |
Rôles de base de données et utilisateurs
Les connexions doivent être mappées sur des comptes d'utilisateur de base de données afin de fonctionner avec des objets de base de données. Les utilisateurs de base de données peuvent alors être ajoutés à des rôles de base de données et héritent de tous les jeux d'autorisations associés à ces rôles. À partir de SQL Server 2005, toutes les autorisations peuvent être accordées.
Vous devez également prendre en compte le rôle public, le compte d'utilisateur dbo et le compte guest lors de la conception de la sécurité pour votre application.
Rôle public
Le rôle public est inclus dans chaque base de données, y compris les bases de données système. Il ne peut pas être supprimé et vous ne pouvez pas ajouter ni supprimer d'utilisateurs dans ce rôle. Les autorisations accordées au rôle public sont héritées par tous les autres utilisateurs et rôles car ils appartiennent par défaut au rôle public. Accordez au rôle public uniquement les autorisations que vous souhaitez accorder à tous les utilisateurs.
Compte d'utilisateur dbo
Le compte dbo, ou propriétaire de base de données, est un compte d'utilisateur qui possède des autorisations implicites pour effectuer toutes les activités dans la base de données. Les membres du rôle serveur fixe sysadmin sont automatiquement mappés sur dbo.
Remarque : |
---|
À partir de SQL Server 2005, dbo est également le nom d'un schéma, comme indiqué dans Propriété et séparation utilisateur-schéma dans SQL Server (ADO.NET). |
Le compte d'utilisateur dbo est fréquemment confondu avec le rôle de base de données fixe db_owner. La portée de db_owner est une base de données, tandis que la portée de sysadmin est le serveur dans son intégralité. L'appartenance au rôle db_owner ne confère pas les privilèges d'utilisateur dbo.
Compte d'utilisateur guest
Une fois qu'un utilisateur a été authentifié et autorisé à se connecter à une instance de SQL Server, un compte d'utilisateur distinct doit exister dans chaque base de données à laquelle l'utilisateur doit accéder. Exiger un compte d'utilisateur dans chaque base de données empêche les utilisateurs de se connecter à une instance de SQL Server et d'accéder à toutes les bases de données sur un serveur. L'existence d'un compte d'utilisateur guest dans la base de données permet de contourner cette exigence en permettant à une connexion sans compte d'utilisateur de base de données d'accéder à une base de données.
Le compte guest est un compte intégré dans toutes les versions de SQL Server. Il est désactivé par défaut dans les nouvelles bases de données. S'il est activé, vous pouvez le désactiver en révoquant son autorisation CONNECT, en exécutant l'instruction Transact-SQL REVOKE CONNECT FROM GUEST. Dans SQL Server 2000, vous pouvez le désactiver en exécutant les procédures stockées système Transact-SQL sp_dropuser ou sp_revokedbaccess.
Note de sécurité : |
---|
Évitez d'utiliser le compte guest ; toutes les connexions sans autorisations de base de données propres obtiennent les autorisations de base de données accordées à ce compte. Si vous devez utiliser le compte guest, accordez-lui des autorisations minimales. |
Pour plus d'informations sur les connexions, les utilisateurs et les rôles SQL Server, consultez les ressources répertoriées ci-dessous.
Ressource |
Description |
---|---|
Identité et contrôle d'accès dans la documentation en ligne de SQL Server 2008 |
Contient des liens vers des rubriques qui décrivent les entités de sécurité, les rôles, les informations d'identification, les éléments sécurisables et les autorisations. |
Entités de sécurité dans la documentation en ligne de SQL Server 2005 |
Décrit les entités de sécurité et contient des liens vers des rubriques qui décrivent les rôles serveur et de base de données. |
Création de comptes de sécurité et Gestion des comptes de sécurité dans la documentation en ligne de SQL Server 2000 |
Explique comment créer et gérer les connexions, les utilisateurs et les rôles. |
Voir aussi
Concepts
Scénarios de sécurité des applications dans SQL Server (ADO.NET)
Authentification dans SQL Server (ADO.NET)
Propriété et séparation utilisateur-schéma dans SQL Server (ADO.NET)
Autorisations dans SQL Server (ADO.NET)