Vous n'êtes pas identifié(e).

#1 08/05/2017 09:43:16

grant execute sur des fonctions

Bonjour,

J'ai des fonctions compilées avec -U sync dans un schéma sync.

Pour ces fonctions, j'ai fait :

grant usage on schema sync to generic_user with grant option;

revoke all privileges on all tables in schema sync from generic_user;
grant all privileges on all tables in schema sync to generic_user with grant option;

revoke all privileges on all sequences in schema sync from generic_user;
grant all privileges on all sequences in schema sync to generic_user with grant option;

grant execute on all functions in schema sync to generic_user with grant option;

Et en pgadmin3, je vois que les fonctions ont un grant execute pour generic_user.

Je joue un script qui appelle ces fonctions et je reçois un message

ERROR:  function sync.update_handler(character varying, audit_history) does not exist                                                          
LINE 1: SELECT sync.update_handler(sync_schema_name, r.*)                                                                                      
               ^                                                                                                                               
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

pour toutes les fonctions ayant un argument de la forme "public.nom_de_table" comme

CREATE OR REPLACE FUNCTION sync.update_handler(
    schema_name character varying,
    r public.audit_history)

Par contre, les autres fonctions sont reconnues sans problèmes.

J'ai fait

grant usage on schema public to generic_user;
grant select on public.audit_history to generic_user;

mais ça ne change rien.

Que faire ?
Merci pour votre attention

Hors ligne

Pied de page des forums