Was erlaubt die Rolle db_owner?


14

Ich habe versucht, eine Anmeldung zu beheben, die bestimmte Tabellen in einer SQL Server 2012-Datenbank nicht anzeigen kann. Dabei verstehe ich nicht ganz, was eine Mitgliedschaft in der db_ownerRolle erlaubt. Ich kann die anderen Rollen wie verstehen, db_datareader and db_datawriteraber ich bleibe verwirrt, was db_ownererlaubt.

Antworten:


14

Informationen zu Rollen auf Datenbankebene finden Sie in der Referenz zu BOL :

db_owner

Mitglieder der festen Datenbankrolle db_owner können alle Konfigurations- und Wartungsaktivitäten in der Datenbank ausführen und die Datenbank auch löschen .

Am einfachsten können Sie alle Berechtigungen anzeigen, indem Sie die sys.fn_my_permissions()Funktion verwenden. Stellen Sie zunächst sicher, dass Sie Mitglied von 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();

Listen Sie nun alle gültigen Datenbankberechtigungen auf:

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

Das sollte für Ihre Zwecke genau genug sein. Beachten Sie, dass sys.fn_my_permissions()die effektiven Berechtigungen zurückgegeben werden. Stellen Sie sich das also als Aggregation vor.


Bedeutet das, dass Benutzer mit db_ownerMitgliedschaft standardmäßig die gleichen Berechtigungen wie db_readerund haben db_writer?
Webworm

4
Ein Mitglied der db_ownerfesten Datenbankrolle hat SELECT, INSERT, UPDATE, und DELETEBerechtigungen für die Datenbank. Neben vielen anderen Berechtigungen, aber ja, das ist richtig.
Thomas Stringer
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.