none
Permisos "Heredados" desde un Procedure RRS feed

  • Pregunta

  • Hola buenos tardes,

    Oigan no se que paso, recientemente que restauré una base de datos productiva he perdido algunos permisos.

    Se tiene un stored procedure que dentro de el llama a otros 3,

    El permiso que se le dió al usuario fue únicamente al stored procedure principal y no a los que están dentro.

    Esto funciona en producción, sin embargo, en el ambiente de desarrollo me arroja un error que no tiene permisos para ejecutar los procedures internos, que pasó?

    Siempre siempre me ha resultado tan solo dar permisos a los stored y no a los objetos que llama dentro, es configuración de la base de datos?

    Saludos


    saludos

    jueves, 15 de marzo de 2018 18:49

Respuestas

  •  Encontré el problema,

    Cuando desde mi cuenta Admin otorgo permisos a un role, la base de datos asigna al otorgante GRANTOR un usuario = 'patito' que no corresponde al mio (Admin)

    Debería colocarle en la columna GRANTOR = Admin, sin embargo no lo hacía,

    Busqué y me di cuenta que el esquema (ojo: no rol) db_owner tenía asignado ese usuario "db_owner = patito", y ese usuario tenía muchas restricciones, por eso no podía ejecutar procedures "anidados".

    cambié el esquema db_owner a dbo y todo listo!!

    Ahora la imagen en la columna GRANTOR ya tiene dbo

    Aqui el esquema tenía a patito, lo regresé a dbo


    saludos


    • Marcado como respuesta kakaroto2012 jueves, 15 de marzo de 2018 21:44
    • Editado kakaroto2012 jueves, 15 de marzo de 2018 21:47
    jueves, 15 de marzo de 2018 21:44

Todas las respuestas

  • Efectivamente, yo también tengo bien entendido eso:  Execute al procedimiento almacenado que se ejecuta y listo.  Nada más es necesario.

    Yo diría que lo que debe verificar es si realmente le está pasando lo que describe.  Tal vez el error salta por un llamado a otro código.  Lo que describe no es congruente con lo que usted y yo sabemos, así que pienso que tal vez el problema anda por otra parte.


    Jose R. MCP
    Code Samples

    jueves, 15 de marzo de 2018 19:13
  • No no no, el stored es simple y el error es explicito y claro, 

    permiso denegado al objeto tal.... (el stored dentro de ese stored)

    en producción funciona!


    saludos

    jueves, 15 de marzo de 2018 19:27
  •  Encontré el problema,

    Cuando desde mi cuenta Admin otorgo permisos a un role, la base de datos asigna al otorgante GRANTOR un usuario = 'patito' que no corresponde al mio (Admin)

    Debería colocarle en la columna GRANTOR = Admin, sin embargo no lo hacía,

    Busqué y me di cuenta que el esquema (ojo: no rol) db_owner tenía asignado ese usuario "db_owner = patito", y ese usuario tenía muchas restricciones, por eso no podía ejecutar procedures "anidados".

    cambié el esquema db_owner a dbo y todo listo!!

    Ahora la imagen en la columna GRANTOR ya tiene dbo

    Aqui el esquema tenía a patito, lo regresé a dbo


    saludos


    • Marcado como respuesta kakaroto2012 jueves, 15 de marzo de 2018 21:44
    • Editado kakaroto2012 jueves, 15 de marzo de 2018 21:47
    jueves, 15 de marzo de 2018 21:44