PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#2 Général » Procédures et délégation de droits sur les tables » 04/10/2022 09:26:31

Samsam4477
Réponses : 2

Bonjour,

Il existe 2 schémas sur notre base, en plus du schéma PUBLIC :
SCH_TEST : qui ne contient que des tables temporaires
SCH_CENTRAL : qui contient les données du référentiel

Je crée une procédure p_load_data sur le schéma PUBLIC qui alimente les tables de SCH_TOTO à partir des tables du schéma SCH_CENTRAL.
Je crée un user usr_test :
- ayant tous les droits sur le schéma SCH_TEST
- n’ayant aucun droit sur le schéma SCH_CENTRAL
- ayant les droits d’exécution sur p_load_data()

L’objectif étant que usr_test puisse utiliser les données de SCH_CENTRAL sans avoir de droits sur ce schéma sensible SCH_CENTRAL.
Sauf que : à partir d’une session usr_test, lorsque p_load_data() est exécutée, on obtient un message d’erreur : «  droit refusé pour schéma CENTRAL »

Je ne comprends pas ce message d’erreur. En Oracle, quand on donne les droits d’exécution d’un procédure à un utilisateur, il n’a pas besoin des droits sur les tables utilisées par la procédure, tout est délégué.
Sauf qu’on a besoin d’un fonctionnement comme ça pour sécuriser les accès aux tables, il est hors de question de donner les droits à usr_test sur les tables du schéma SCH_CENTRAL.
Comment fait-on ? il faut absolument garder le principe de tables temporaires sur SCH_TEST, c’est donc la session courante usr_test qui doit les alimenter.

Merci pour votre expertise.

Pied de page des forums

Propulsé par FluxBB