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 synonymecomme 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.








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.
Répondre avec citation
Partager