Laden...

SQL-Server: Berechtigung auf System-Views

Letzter Beitrag vor 11 Jahren 1 Posts 687 Views
SQL-Server: Berechtigung auf System-Views

Hallo.

Für eine spezielle Monitoring-Funktion, welche über Trigger gesteuert werden, muss ich auf System-Views schaun (konkret u.A. sys.dm_exec_connections). Dafür muss der Nutzer aber scheinbar in der sysadmin-Rolle sein. Die will ich logischerweise natürlich nicht jedem geben, der irgendwas in der DB machen soll.

Auf die Views wird nur über Prozeduren zugegriffen, also mein erster Ansatz: Impersonate. Habe also einen neuen Nutzer bzw. Login (sysadmin, wird im Produktivbetrieb die Verbindung zur Instanz von außen verweigert) erstellt und eine Prozedur, die unter diesem Nutzer läuft. Jetzt das Kuriose: melde ich mich mit dem Login an, klappt die Abfrage (einfaches SELECT auf so einen View). Führe ich die Prozedur unter dem normalen Nutzer aus, sagt der mir keine Berechtigung. Laut Ausgabe in der Prozedur läuft die aber unter dem sysadmin-User!

Dieses Vorgehen habe ich schon oft genutzt, nur noch nie bei Systemobjekten. Einfach SELECT-Rechte auf die zu benutzenden Views geben ist ebenfalls schwierig. Das geht nur, wenn man in der Master-DB ist, aber dort gibt’s ja die Nutzer nicht.

Hat jemand eine Idee, wie man das realisieren kann?