Wie kann ich den SQL-Server fragen, ob ich Berechtigungen für etwas habe? (einfügen, aktualisieren usw.)

8

Ich versuche, einen Komponententest für den Datenbank-Layer zu schreiben, der den Verbindungszeichenfolge-Benutzer validiert, hat die Berechtigung zum Aktualisieren / Einfügen / Lesen. Einfügen / Rollback würde zusätzliche Lücken in der Identitätsspalte oder den Starttriggern verursachen. Wenn Leseberechtigungen für die Tabelle ausgewählt werden, wird load / work für die SQL-Datenbank erstellt und aktualisiert, wenn die Tabelle zuletzt in den Statistiken durchsucht wurde. Wie programmiere ich SQL Server die Berechtigungen des aktuellen Benutzers für ein Objekt / eine Tabelle / eine Ansicht / eine gespeicherte Prozedur / etc programmatisch.

Ich kann mir vorstellen, dass es irgendwo in den Systemtabellen ist.

    
Maslow 08.01.2010, 19:23
quelle

2 Antworten

13

Sie können jede Berechtigung einzeln mit HAS_PERMS_BY_NAME anfordern:

%Vor%

Oder Sie können nach all Ihren Berechtigungen fragen, indem Sie fn_my_permissions verwenden:

%Vor%     
Remus Rusanu 08.01.2010, 19:38
quelle
4

Versuchen Sie es mit dem folgenden gespeicherten proc

%Vor%

Es sollte geben Sie wollen, dass Sie suchen

    
Sparky 08.01.2010 19:35
quelle

Tags und Links