es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo otorgar acceso a PROCEDURE_DEFINITION en Snowflake desde el rol ADMIN a otro rol?

He creado un procedimiento almacenado llamado ‘XYZ’ en el esquema “ADMIN” utilizando el rol “ADMIN_ROLE” y he otorgado un permiso de “USAGE” desde la cuenta “ADMIN” a otro rol llamado “ABC_ROLE”.

Sentencia utilizada:

GRANT USAGE
ON ALL PROCEDURES IN SCHEMA “DATABASE_TEST”.”ADMIN”
TO ROLE “ABC_ROLE”;

Sin embargo, si utilizo el rol “ABC_ROLE”, no veo la definición del procedimiento PROCEDURE_DEFINITION.

SELECT PROCEDURE_DEFINITION
FROM INFORMATION_SCHEMA.procedures
WHERE procedure_name = ‘XYZ’

Devuelve NULL o DESCRIBE PROCEDURE XYZ() devuelve el cuerpo en blanco.

¿Qué permisos adicionales debo proporcionar para otorgar acceso al cuerpo/definición del procedimiento para “ABC_ROLE” desde “ADMIN_ROLE”?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para otorgar acceso a la definición del cuerpo/procedimiento de la procedimiento almacenado “XYZ” al rol “ABC_ROLE” desde el rol “ADMIN_ROLE”, es necesario otorgar el permiso “EXECUTE” en el procedimiento al rol “ABC_ROLE”. Esto se puede hacer utilizando la siguiente declaración:

    GRANT EXECUTE ON PROCEDURE "DATABASE_TEST"."ADMIN"."XYZ" TO ROLE "ABC_ROLE";
    

    Después de ejecutar esta declaración, el rol “ABC_ROLE” debería poder acceder a la definición del cuerpo/procedimiento del procedimiento almacenado “XYZ”.

Comments are closed.