WolfangP 0 Posted November 2, 2020 Report Posted November 2, 2020 Hallo, gerne möchte ich die Funktion sp_who2 benutzen, um den Benutzern der Datenbank alle aktuell angemeldeten Benutzer bzw. aktive Transaktionen anzeigen lassen. Testweise habe ich einigen Benutzern die Berechtigung 'VIEW SERVER STATE' erteilt, so dass die benutzerdefinierte Procedure die gewünschte Liste liefert. Nun wollte ich aber nicht jedem Benutzer diese Rechte erteilen, sondern besser die Procedure mittels 'EXECUTE AS-Klausel' ausführen lassen. Vorgegangen bin ich dabei nach der Anleitung von Microsoft: "Anpassen von Berechtigungen durch Identitätswechsel in SQL Server". Leider gelingt es mir nicht der Anmeldung 'proxyUser' die erforderliche Berechtigung zu erteilen. Die Anweisung : GRANT VIEW SERVER STATE TO "proxyUser" schlägt mit folgender Meldung fehl: 'Suchen des Anmeldung-Objekts 'proxyUser' ist nicht möglich, weil das Objekt nicht vorhanden ist oder Sie nicht die erforderliche Berechtigung haben.' Über Hinweise zur Lösung des Problems oder alternativer Vorgehensweise würde ich mich freuen. Vielen Dank. Grüße Wolfgang Quote
MDD 12 Posted November 2, 2020 Report Posted November 2, 2020 Hallo Der User "proxyUser" existiert bereits und ist aktiv? du schreibst schon: GRANT VIEW SERVER STATE TO proxyUser ohne die Hochkommas bzw. Anführungszeichen? Quote
WolfangP 0 Posted November 3, 2020 Author Report Posted November 3, 2020 vor 16 Stunden schrieb MDD: Hallo Der User "proxyUser" existiert bereits und ist aktiv? du schreibst schon: GRANT VIEW SERVER STATE TO proxyUser ohne die Hochkommas bzw. Anführungszeichen? Hallo, vielen Dank für Deine Antwort. Der User wird wie folgt erstellt. USE DbName CREATE USER proxyUser WITHOUT LOGIN USE master GRANT VIEW SERVER STATE TO proxyUser Es ist unerheblich, ob mit oder ohne doppelte Anführungszeichen. Beides ist zulässig. Die Fehlermeldung dazu lautet: Meldung 15151, Ebene 16, Status 1, Zeile 29 Suchen des Anmeldung-Objekts 'proxyUser' ist nicht möglich, weil das Objekt nicht vorhanden ist oder Sie nicht die erforderliche Berechtigung haben. Stutzig macht mich, dass SQL-Server hier nach einem Anmeldungs-Objekt sucht. proxyUser ist ja explizit ein Objekt OHNE Anmeldung. Die Frage ist also, wie erteile ich einem Nicht-Anmeldungs-Objekt die erforderlichen Rechte? Erstelle ich eine normale Anmeldung "Dieter Müller" funktioniert sowohl GRANT VIEW SERVER STATE TO [Dieter Müller] als auch GRANT VIEW SERVER STATE TO "Dieter Müller" Gruß Wolfgang Quote
NilsK 2,972 Posted November 3, 2020 Report Posted November 3, 2020 (edited) Moin, zu dem User gehört dem Statement nach kein Login. Er kann also nicht zur Anmeldung verwendet werden. Und genau das sagt auch die Fehlermeldung. Du brauchst einen Login, nicht nur einen User. Schließlich willst du ja auf Objekte außerhalb der Datenbank zugreifen. Vielleicht wäre das der richtige Zeitpunkt, mal über Ziel, Sinn und Ansatz nachzudenken. Mir kommt das Vorhaben schon etwas seltsam vor. Wenn man wüsste, was am Ende erreicht werden soll, könnte man vielleicht Lösungswege vorschlagen. Gruß, Nils Edited November 3, 2020 by NilsK Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.