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.

Webwurm
quelle

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.

Thomas Stringer
quelle
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