ich eine gespeicherte Prozedur als ein Benutzer erstellt haben, die Admin-Rechte hat und enthaltenEXECUTE AS und OPENROWSET bulkload
WITH EXECUTE AS SELF
Dann versuche ich, die gespeicherte Prozedur mit einem Benutzer ausführen, die keine Berechtigungen hat, versucht, den Benutzer, der ein Administrator ist, zu imitieren.
Aber es Fehler zurück sagen, der Benutzer hat nicht die Berechtigungen, Bulk-Load zu verwenden.
Wie auch immer um diese?
Von MSDN zu tun haben: „EXECUTE AS SELF entspricht AS user_name ausführen zu können, wo der angegebene Benutzer ist die Person, die das Modul erstellt oder ändert. Die tatsächliche Benutzer-ID der Person, die die Module erstellt oder ändert, wird in der Spalte execute_as_principal_id in der Katalogsicht sys.sql_modules oder sys.service_queues gespeichert. " – Andomar
das habe ich gemeint. Wenn er den proc mit seinem eigenen Benutzer aufruft, wäre das Ausführen als self dasselbe wie execute as his_user. was scheitern würde. Das ist der Grund, warum ich fragte, wie er den Identitätswechsel zum Admin-Benutzer macht. – Diego
Aus dem Post, "Ich habe eine gespeicherte Prozedur als ein Benutzer erstellt, der Administratorrechte hat" Er erwartet "als selbst" auf diesen Benutzer verweisen, und es sollte . Aber aus irgendeinem Grund funktioniert das nicht so. – Andomar