Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Oui c'est exactement ça.
Merci beaucoup on va tester
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.
Pages : 1