I'm getting somewhat confused with SQL Server security
- we have a login and a user: - test
- we have a table: - dbo.tblSessionFilter
User test has no select and no delete permission on this table (I tested this!!)
- Then we have a procedure: - create procedure dbo.procFilter_Clear with execute as caller as delete from dbo.tblSessionfilter where spid = @@SPID
User test has execute right on this procedure.
And now, user test can call this procedure and can delete entries from the table; although he has no direct delete access on the table, and the procedure is execute as caller ! 
How is that possible ?
Is it probably because procedure and table are in the same schema?
 
     
    