sql >> Base de Datos >  >> RDS >> Sqlserver

Procedimiento almacenado y permisos:¿ES EJECUTAR suficiente?

Los permisos en las tablas no se verifican (incluido DENY) si las tablas y el proceso tienen el mismo propietario. También pueden estar en diferentes esquemas siempre que los esquemas tengan el mismo propietario.

Ver encadenamiento de propiedad en MSDN

Editar, de un comentario de una respuesta eliminada.

El contexto es siempre el inicio de sesión actual a menos que EXECUTE AS como se ha utilizado:solo no se comprueban los permisos DML del objeto al que se hace referencia. Pruebe OBJECT_ID (tabla referenciada) en un proceso almacenado donde no se asignan derechos a la tabla referenciada. Da NULL. Si lo ejecuta el propietario del proceso almacenado, le daría un valor porque el propietario tiene derechos sobre la tabla referenciada