Bonjour tout le monde,
Je suis confronté à un sacré problème qui me fait tourner bourrique : un user n'arrive pas à accéder à un de ses objets mais les autres users y ont accès!!!!!
Le user ISIHOMAPP a un synonyme de nom V_FBTR qui est valide.
Voilà le code sous TOAD de l'onglet script qui me montre la création de la vue sur laquelle pointe ce synonyme. ATTENTION : nous avons eu des problèmes de droits car cette vue est créée dans le schéma ISI$OWNER par rapport à une vue du schéma SIR_ODS$OWNER et nous avons dû donner au user ISI$OWNER les droits de SELECT en direct sur les tables de SIR_ODS$OWNER sinon, le droit via un rôle ne permettait pas de créer la vue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 DROP VIEW ISI$OWNER.V_FBTR; /* Formatted on 15/04/2016 13:08:57 (QP5 v5.115.810.9015) */ CREATE OR REPLACE FORCE VIEW ISI$OWNER.V_FBTR ( FBT_ID, FBT_CODE ) AS SELECT DISTINCT VLU_OPTION_VALUE_ENUM AS FBT_ID, ENL_CODE AS FBT_CODE FROM SIR_ODS$OWNER.SERR_SERVICE, SIR_ODS$OWNER.OPTR_OPTION, SIR_ODS$OWNER.VLUR_OPTION_VALUE, SIR_ODS$OWNER.OSVR_OFFERED_SERVICE, SIR_ODS$OWNER.OOPR_OFFERED_OPTION, SIR_ODS$OWNER.ENLE_ENUM_VALUE WHERE OSV_SER_ID = SER_ID AND OOP_OSV_ID = OSV_ID AND OOP_OPT_ID = OPT_ID AND OPT_SERR_ID = SER_ID AND VLU_OPT_ID = OPT_ID AND SER_TYPE = '59' AND OPT_TYPE = '64' AND VLU_OPTION_VALUE_ENUM = ENL_ID; COMMENT ON TABLE ISI$OWNER.V_FBTR IS ' Technical keys translation view '; DROP SYNONYM ISIHOMAPP.V_FBTR; CREATE SYNONYM ISIHOMAPP.V_FBTR FOR ISI$OWNER.V_FBTR; DROP PUBLIC SYNONYM V_FBTR; CREATE PUBLIC SYNONYM V_FBTR FOR ISI$OWNER.V_FBTR;
J'ai aussi donné le droit SELECT sur les tables de la vue du schéma SIR_ODS$OWNER en direct à ISIHOMAPP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 select * from dba_tab_privs where owner = 'SIR_ODS$OWNER' AND TABLE_NAME IN ( 'SERR_SERVICE', 'OPTR_OPTION', 'VLUR_OPTION_VALUE', 'OSVR_OFFERED_SERVICE', 'OOPR_OFFERED_OPTION', 'ENLE_ENUM_VALUE') and GRANTEE = 'ISIHOMAPP'; GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE ------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- --- ISIHOMAPP SIR_ODS$OWNER ENLE_ENUM_VALUE SIR_ODS$OWNER SELECT NO NO ISIHOMAPP SIR_ODS$OWNER OOPR_OFFERED_OPTION SIR_ODS$OWNER SELECT NO NO ISIHOMAPP SIR_ODS$OWNER OPTR_OPTION SIR_ODS$OWNER SELECT NO NO ISIHOMAPP SIR_ODS$OWNER OSVR_OFFERED_SERVICE SIR_ODS$OWNER SELECT NO NO ISIHOMAPP SIR_ODS$OWNER SERR_SERVICE SIR_ODS$OWNER SELECT NO NO ISIHOMAPP SIR_ODS$OWNER VLUR_OPTION_VALUE SIR_ODS$OWNER SELECT NO NO 6 rows selected.
Je précise qu'il existe plusieurs objets avec le même nom dans la base mais avec des owner différents.
[/CODE]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select owner, object_type, status, created from dba_objects where object_name = 'V_FBTR'; OWNER OBJECT_TYPE STATUS CREATED ------------------------------ ------------------- ------- -------- PUBLIC SYNONYM VALID 16/11/15 ISI$OWNER VIEW VALID 15/04/16 ISIHOMAPP SYNONYM VALID 15/04/16
Le problème est que ce user n'accède pas à son propre synonyme comme s'il n'en était pas le vrai propriétaire ou si on lui avait enlevé le droit de faire des SELECT dessus mais, à ma connaissance ce n'est pas possible.
Et pour couronner le tout, le user ISI$OWNER accède bien à l'objet ISIHOMAPP.V_FBTR! Là c'est dingue!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 show user select * from V_FBTR; select * from ISIHOMAPP.V_FBTR; User is "ISIHOMAPP" select * from V_FBTR * Error at line 1 ORA-00942: Table ou vue inexistante select * from ISIHOMAPP.V_FBTR * Error at line 1 ORA-00942: Table ou vue inexistante
J'avoue être complètement perdu dans cette histoire donc si vous pouviez m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 show user select * from ISIHOMAPP.V_FBTR; User is "ISI$OWNER" FBT_ID FBT_CODE ---------- -------------------------------------------------- 71 004 73 006 72 005 3 rows selected.
Par avance un gros gros merci pour votre aide.
Partager