Estoy usando la edición SQL Server 2008 Express.¿Cómo otorgo una función de base de datos para ejecutar permisos en un esquema? ¿Qué estoy haciendo mal?
He creado un nombre de usuario, una función y un esquema. He asignado un mapa del usuario al inicio de sesión y le he asignado el rol al usuario.
El esquema contiene varias tablas y procedimientos almacenados.
Me gustaría que la función tenga permisos de ejecución en todo el esquema.
He intentado otorgar permiso de ejecución a través de Management Studio y al ingresar el comando en una ventana de consulta.
GRANT EXEC ON SCHEMA::schema_name TO role_name
pero cuando me conecto a la base de datos utilizando SQL Management Studio (como el nombre de usuario que he creado) en primer lugar no puedo ver los procedimientos almacenados, pero lo más importante es que me sale un error de permiso denegado al intentar ejecutarlos.
El procedimiento almacenado en cuestión no hace nada excepto seleccionar datos de una tabla dentro del mismo schma.
He intentado crear el procedimiento almacenado con y sin la línea:
WITH EXECUTE AS OWNER
Esto no hace ninguna diferencia.
Sospecho que cometí un error al crear mi esquema, o hay un problema de propiedad en alguna parte, pero realmente estoy luchando para que algo funcione.
La única forma en que he logrado ejecutar los procedimientos almacenados es otorgando permisos de control al rol y también a ejecutarlo, pero no creo que este sea el modo correcto y seguro de proceder.
Cualquier sugerencia/comentario sería muy apreciada.
Gracias.
¿Ha otorgado permisos de ejecución al usuario que creó para Sproc? –