SQL Server 2008 R2: normalmente creamos nuestra tabla y el procedimiento almacenado, y le otorgamos al usuario derechos de ejecución para el procedimiento almacenado. Nunca tenemos que otorgar derechos específicos a las tablas o vistas porque si el usuario puede ejecutar el procedimiento almacenado, SQL Server deduce que el procedimiento almacenado debe permitir realizar las instrucciones de selección/inserción/actualización. Funciona bien porque solo estamos tratando con un esquema, pero ahora tenemos un escenario donde las tablas están en un esquema, pero un procedimiento almacenado está en otro. Cuando el usuario ejecuta el procedimiento almacenado, consiguen un error:procedimiento almacenado llamando datos en un esquema diferente
Msg 229, Level 14, State 5, Procedure teststoredprocedure, Line 7 The SELECT permission was denied on the object 'testtable', database 'testdatabase', schema 'testschema'.
teststoredprocedure
es en un esquema diferente que testtable
. ¿Es posible permitir que el procedimiento almacenado seleccione desde tablas, sin otorgarle derechos específicos al usuario sobre esas tablas?
Si la respuesta fue correcta o útil, acepte o vote. – Ben