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?