Ich weiß, dass ich effektive Berechtigungen abfragen kann, indem ich Folgendes verwende sys.fn_my_permissions
:
USE myDatabase;
SELECT * FROM fn_my_permissions('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name
------------------------------------------------
dbo.myTable | | SELECT
dbo.myTable | | UPDATE
...
Hier erfahren Sie, ob der aktuelle Benutzer über die Berechtigungen SELECT, INSERT, UPDATE usw. myTable
in der Datenbank verfügt myDatabase
.
Kann man leicht herausfinden, warum der Benutzer über diese Berechtigungen verfügt? Ich hätte zum Beispiel gerne eine Funktion, fn_my_permissions_ex
die eine zusätzliche reason
Spalte ausgibt :
USE myDatabase;
SELECT * FROM fn_my_permissions_ex('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name | reason
------------------------------------------------------------------------------------------------------------------------------------
dbo.myTable | | SELECT | granted to database role public
dbo.myTable | | UPDATE | member of group MYDOMAIN\Superusers, which belongs to database role db_datawriter
...
Leider konnte ich eine solche Funktion in der SQL Server-Dokumentation nicht finden. Gibt es ein Tool oder Skript, das diese Funktionalität bietet?
fn_my_permission_ex
, also nichts, was ich exportieren könnte. Ich frage, ob es eine Funktion oder ein Tool mit dieser Funktionalität gibt .