locked
Error de permisos en usuario de lectura sobre una tabla RRS feed

  • Pregunta

  • Estimados buenos dias junto con saludar les comento que me aparece el siguiente error en un servidor SQL Server 2008 SP3, para un usuario que tiene permiso de lectura sobre una base de datos. 

    "The execute permission was denied on the object 'sp_enable_sql_debug', database mssqlsystemresource, schema 'sys'. (Microsoft SQL Server, Error: 229)"

    Favor si me pudiesen ayudar como solventar esto, es primera vez que me ocurre. Y en la web dice que hay que otorgarle permiso de sysadmin , el cual no le puedo otorgar a un usuario externo.

    De antemano muchas gracias

    Saludos cordiales. 

    jueves, 23 de enero de 2020 12:52

Respuestas

  • El permiso de lectura no incluye permiso de ejecucion. El error se produce sobre un procedimiento almacenado y el usuario no tiene permiso para ejecutarlo. Da igual que por dentro el procedimiento unicamente haga lecturas y que el usuario tenga permiso para realizar las lecturas. El sistema no es tan inteligente, y si el usuario no tiene permiso de ejecucion sobre el procedimiento almacenado, no le deja llamarlo (con independencia de las operaciones que el procedimiento haga internamente).

    Puedes conceder permisos sobre ese procedimiento a un usuario mediante una sentencia parecida a esta:

    grant execute on sp_enable_sql_debug to [nombreDelUsuario]

    Pero no sera suficiente en caso de que el procedimiento por dentro requiera algun permiso adicional que no tenga el usuario, porque no esta creado con "execute as...". Podrias escribir tu propio procedure que tenga "execute as" para que se ejecute como sysadmin y por dentro meter una llamada a sp_enable_sql_debug y conceder al usuario permiso de ejecucion sobre tu nuevo procedimiento.

    jueves, 23 de enero de 2020 13:17