Cosa consente il ruolo db_owner


15

Ho cercato di risolvere un accesso che non è in grado di visualizzare alcune tabelle in un database di SQL Server 2012. Nel fare ciò, trovo che non capisco bene cosa db_ownerconsenta l'appartenenza al ruolo. Riesco a capire gli altri ruoli come, db_datareader and db_datawriterma rimango confuso su ciò che db_ownerconsente.

Risposte:


15

Consultare il riferimento su BOL per i ruoli a livello di database :

db_owner

I membri del ruolo predefinito del database db_owner possono eseguire tutte le attività di configurazione e manutenzione sul database e possono anche eliminare il database .

Il modo più semplice per visualizzare tutte le autorizzazioni è utilizzare la sys.fn_my_permissions()funzione. Per prima cosa verifica di essere un membro di 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();

Ora elenca tutte le autorizzazioni di database efficaci:

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

Dovrebbe essere abbastanza granulare per i tuoi scopi. Qualcosa da notare, sys.fn_my_permissions()restituisce le autorizzazioni effettive , quindi pensala come un'aggregazione.


Ciò significherebbe che l'utente che ha l' db_ownerabbonamento dispone per impostazione predefinita delle stesse autorizzazioni di db_readere db_writer?
webworm,

5
Un membro del db_ownerruolo del database fisso avrà SELECT, INSERT, UPDATE, e DELETEautorizzazioni sul database. Tra le molte altre autorizzazioni, ma sì, è corretto.
Thomas Stringer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.