Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Procedimento armazenado e permissões - EXECUTE é suficiente?


As permissões nas tabelas não são verificadas (incluindo DENY) se as tabelas e o proc tiverem o mesmo proprietário. Eles também podem estar em esquemas diferentes, desde que os esquemas tenham o mesmo proprietário.

Consulte Encadeamento de propriedade no MSDN

Editar, a partir de um comentário de uma resposta excluída.

O contexto é sempre o login atual, a menos que EXECUTE AS conforme usado:apenas as permissões DML do objeto referenciado não são verificadas. Tente OBJECT_ID(tabela referenciada) em um proc armazenado onde nenhum direito é atribuído à tabela referenciada. Dá NULL. Se executado pelo proprietário do proc armazenado, ele daria um valor porque o proprietário tem direitos na tabela referenciada