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.

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.