Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Stored procedure e autorizzazioni - ESEGUI è sufficiente?

Le autorizzazioni sulle tabelle non vengono controllate (incluso DENY) se le tabelle e proc hanno lo stesso proprietario. Possono trovarsi anche in schemi diversi purché gli schemi abbiano lo stesso proprietario.

Vedi Concatenamento della proprietà su MSDN

Modifica, da un commento da una risposta eliminata.

Il contesto è sempre il login corrente a meno che EXECUTE AS come è stato utilizzato:solo le autorizzazioni DML degli oggetti di riferimento non vengono verificate. Prova OBJECT_ID(referencedtable) in un processo memorizzato in cui nessun diritto è assegnato a referencedtable. Dà NULL. Se eseguito dal proprietario del processo memorizzato, darebbe un valore perché il proprietario ha diritti sulla tabella di riferimento