Na co pozwala rola db_owner

15

Próbowałem rozwiązać problemy z logowaniem, które nie jest w stanie wyświetlić niektórych tabel w bazie danych SQL Server 2012. W ten sposób nie do końca rozumiem, na co pozwala członkostwo w tej db_ownerroli. Rozumiem inne role, db_datareader and db_datawriterale wciąż jestem zdezorientowany, co db_ownerpozwala.

webworm
źródło

Odpowiedzi:

15

Zobacz odniesienie do BOL dla ról na poziomie bazy danych :

db_owner

Członkowie stałej roli bazy danych db_owner mogą wykonywać wszystkie czynności konfiguracyjne i konserwacyjne w bazie danych, a także mogą usuwać bazę danych .

Najłatwiejszym sposobem sprawdzenia wszystkich uprawnień jest użycie sys.fn_my_permissions()funkcji. Najpierw sprawdź, czy jesteś członkiem 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();

Wymień teraz wszystkie efektywne uprawnienia do bazy danych:

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

To powinno być wystarczająco szczegółowe dla twoich celów. Coś, na co należy zwrócić uwagę, sys.fn_my_permissions()zwraca efektywne uprawnienia, więc pomyśl o tym jak o agregacji.

Thomas Stringer
źródło
Czy to znaczy, że użytkownik mający db_ownerczłonkostwo ma domyślnie takie same uprawnienia jak db_readeri db_writer?
webworm
5
Członek db_ownerstała rola bazy danych będą miały SELECT, INSERT, UPDATEoraz DELETEuprawnienia do bazy danych. Wśród wielu innych uprawnień, ale tak, to prawda.
Thomas Stringer