Conceda permissão SELECT em uma exibição, mas não em objetos subjacentes

Costumo ler que um dos objetivos de uma VIEW é a segurança: permitir que alguns usuários acessem a tabela subjacente e outros usuários apenas em uma exibição derivada. Com isso em mente, projetei várias visualizações que fornecem conjuntos de dados restritos para usuários externos.

Tudo muito bem, mas na prática isso não funciona. Depois de concederSELECT permissão em uma visualização, os usuários não podem acessá-la, a menos que eu concedaSELECT em todos os objetos subjacentes também. Mesma história para procedimentos armazenados. O resultado líquido não é funcional, pois acabo concedendo acesso a dados confidenciais aos usuários errados e também irritante, pois é fácil esquecer um objeto e os usuários voltam para reclamar que a exibição "não" trabalhos".

Existe uma maneira de concederSELECT permissões em uma exibição ou procedimento armazenado sem precisar expor os objetos subjacentes também?

questionAnswers(3)

yourAnswerToTheQuestion