Jump to content

SQL - Execute As


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Posted

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

Posted
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

Posted (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 by NilsK
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...