Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gespeicherte Prozeduren und Berechtigungen - Reicht EXECUTE?

Berechtigungen für Tabellen werden nicht geprüft (einschließlich DENY), wenn Tabellen und Prozesse denselben Eigentümer haben. Sie können sich auch in unterschiedlichen Schemas befinden, solange die Schemas denselben Besitzer haben.

Siehe Eigentumsverkettung auf MSDN

Bearbeiten, von einem Kommentar aus einer gelöschten Antwort.

Der Kontext ist immer die aktuelle Anmeldung, außer EXECUTE AS wie verwendet:Nur referenzierte Objekt-DML-Berechtigungen werden nicht geprüft. Probieren Sie OBJECT_ID(referencedtable) in einer gespeicherten Prozedur aus, in der der referencedtable keine Rechte zugewiesen sind. Es gibt NULL. Wenn es vom Besitzer der gespeicherten Prozedur ausgeführt wird, würde es einen Wert geben, da der Besitzer Rechte auf die referenzierte Tabelle hat