Que permet le rôle db_owner

15

J'ai essayé de dépanner une connexion qui n'est pas en mesure d'afficher certaines tables dans une base de données SQL Server 2012. Ce faisant, je trouve que je ne comprends pas très bien ce que permet l'appartenance au db_ownerrôle. Je peux comprendre les autres rôles tels que db_datareader and db_datawritermais je reste confus quant à ce qui db_ownerpermet.

webworm
la source

Réponses:

15

Veuillez consulter la référence sur BOL pour les rôles au niveau de la base de données :

db_owner

Les membres du rôle de base de données fixe db_owner peuvent effectuer toutes les activités de configuration et de maintenance sur la base de données et peuvent également supprimer la base de données .

La façon la plus simple de voir toutes les autorisations est d'utiliser la sys.fn_my_permissions()fonction. Vérifiez d'abord que vous êtes membre de db_owner:

select
    rol.name
from sys.database_principals mem
inner join sys.database_role_members drm
on drm.member_principal_id = mem.principal_id
inner join sys.database_principals rol
on drm.role_principal_id = rol.principal_id
where mem.principal_id = user_id();

Énumérez maintenant toutes les autorisations de base de données efficaces:

select *
from sys.fn_my_permissions(null, 'database');

Cela devrait être assez granulaire pour vos besoins. Quelque chose à noter, sys.fn_my_permissions()renvoie les autorisations effectives , alors pensez-y comme une agrégation.

Thomas Stringer
la source
Cela signifierait-il que l'utilisateur qui a l' db_ownerappartenance a par défaut les mêmes autorisations que db_readeret db_writer?
webworm
5
Un membre du db_ownerrôle de base de données fixe aura SELECT, INSERT, UPDATEet les DELETEautorisations sur la base de données. Parmi de nombreuses autres autorisations, mais oui, c'est correct.
Thomas Stringer