it-swarm.com.de

Was erlaubt die Rolle db_owner?

Ich habe versucht, eine Anmeldung zu beheben, bei der bestimmte Tabellen in einer SQL Server 2012-Datenbank nicht angezeigt werden können. Dabei verstehe ich nicht ganz, was die Mitgliedschaft in der Rolle db_owner Erlaubt. Ich kann die anderen Rollen wie db_datareader and db_datawriter Verstehen, aber ich bin weiterhin verwirrt darüber, was db_owner Erlaubt.

15
webworm

Bitte beachten Sie die Referenz zu BOL für Rollen auf Datenbankebene :

db_owner

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

Der einfachste Weg, alle Berechtigungen anzuzeigen, ist die Verwendung der Funktion sys.fn_my_permissions(). Stellen Sie zunächst sicher, dass Sie Mitglied von db_owner Sind:

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 effektiven Datenbankberechtigungen auf:

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

Das sollte für Ihre Zwecke detailliert genug sein. Zu beachten ist, dass sys.fn_my_permissions() die Berechtigungen effektiv zurückgibt. Stellen Sie sich das also als Aggregation vor.

15
Thomas Stringer