Otorgue permiso SELECT en una vista, pero no en objetos subyacentes

A menudo leo que uno de los propósitos de VIEW es la seguridad: permitir que algunos usuarios accedan a la tabla subyacente y otros usuarios solo a una vista derivada. Con eso en mente, diseñé varias vistas que proporcionan conjuntos de datos restringidos a usuarios externos.

Todo muy bien, pero en la práctica esto no funciona. Después de concederSELECT permiso en una vista, los usuarios no pueden acceder a ella a menos que otorgueSELECT en todos los objetos subyacentes también. Misma historia para procedimientos almacenados. El resultado neto no es funcional, ya que termino otorgando acceso a datos confidenciales a los usuarios equivocados, así como molesto, porque es fácil olvidar un objeto y los usuarios regresan para quejarse de que la vista "no trabajo".

¿Hay alguna forma de otorgarSELECT permisos en una vista o procedimiento almacenado sin tener que exponer también los objetos subyacentes?

Respuestas a la pregunta(3)

Su respuesta a la pregunta