Accorder des privilèges pour les fonctions définies par l’utilisateur¶
Cette section répertorie les privilèges minimums requis sur les objets pour effectuer des actions SQL spécifiques avec une UDF ou une UDTF.
Dans ce chapitre :
Accorder des privilèges pour des UDFs et des UDTFs¶
Pour effectuer des actions SQL sur une UDF ou une UDTF, la personne effectuant l’action doit avoir été assignée à un rôle qui a reçu les privilèges requis. Ces actions SQL comprennent :
Création de la fonction, comme avec CREATE FUNCTION ou avec l” API Snowpark.
Propriété de la fonction afin de supprimer, modifier et gérer l’accès à la fonction, que ce soit par SQL ou par l’API de Snowpark.
Appel de la fonction, que ce soit avec SQL ou l’API de Snowpark.
Le rôle doit se voir attribuer des privilèges sur les objets liés à la fonction, notamment la base de données et le schéma, et (si nécessaire) une zone de préparation qui contient les dépendances de la fonction.
Pour accorder des privilèges sur un objet à un rôle, utilisez une instruction GRANT.
Le code de l’exemple suivant accorde à my_role
le privilège USAGE sur la fonction my_java_udf
.
GRANT USAGE ON FUNCTION my_java_udf(number, number) TO my_role;
Création d’UDTFs ou d’UDFs¶
La création, la gestion et l’exécution d’UDF ou d’UDTF nécessitent un rôle avec au minimum les privilèges suivants :
Objet |
Privilèges |
Remarques |
---|---|---|
Base de données |
USAGE |
|
Schéma |
USAGE, CREATE FUNCTION |
|
Zone de préparation |
USAGE (zone de préparation externe) ou READ (zone de préparation interne) |
Requis si la fonction dépend ou lit des fichiers sur une zone de préparation. Dans ce cas, cela inclut les fichiers en zone de préparation suivants :
|
Propriété d’UDFs ou d’UDTFs¶
Après la création d’une UDF ou d’une UDTF, le propriétaire de la fonction (c’est-à-dire la personne qui détient le rôle qui dispose du privilège OWNERSHIP sur la fonction) doit disposer au minimum des privilèges suivants :
Objet |
Privilège |
Remarques |
---|---|---|
Base de données |
USAGE |
|
Schéma |
USAGE |
|
Zone de préparation |
USAGE (zone de préparation externe) ou READ (zone de préparation interne) |
Requis si la fonction dépend ou lit des fichiers sur une zone de préparation. Dans ce cas, cela inclut les fichiers en zone de préparation suivants :
|
Fonction |
OWNERSHIP |
Appel d’UDFs ou d’UDTFs¶
Un rôle qui appelle une UDF ou une UDTF doit disposer au minimum des privilèges suivants :
Objet |
Privilège |
Remarques |
---|---|---|
Base de données |
USAGE |
|
Schéma |
USAGE |
Schéma qui contient les objets de niveau schéma de cette table. Si les objets sont contenus dans plusieurs schémas, le privilège USAGE est requis sur chacun d’eux. |
Zone de préparation |
USAGE (zone de préparation externe) ou READ (zone de préparation interne) |
Requis si la fonction dépend ou lit des fichiers sur une zone de préparation. Dans ce cas, cela inclut les fichiers en zone de préparation suivants :
|
Fonction |
USAGE |
Requis lorsque quelqu’un d’autre que le propriétaire de la fonction appelle la fonction. USAGE sur la fonction doit être accordé à un rôle qui est attribué à une personne qui appellera la fonction. |