Objet de mon propre schéma inaccessible mais accessible depuis un autre schéma!
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:
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:
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:
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 |
[/CODE]
Le problème est que ce user n'accède pas à son propre synonyme :aie: 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.
Code:
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 |
Et pour couronner le tout, le user ISI$OWNER accède bien à l'objet ISIHOMAPP.V_FBTR! Là c'est dingue!
Code:
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. |
J'avoue être complètement perdu dans cette histoire donc si vous pouviez m'aider ;)
Par avance un gros gros merci pour votre aide.
Objet de mon propre schéma inaccessible mais accessible depuis un autre schéma
La vue ALL_SYNONYMS sous le propriétaire du synonym te donne quoi ?
Objet de mon propre schéma inaccessible mais accessible depuis un autre schéma
Ton méssage d'erreur oracle est très claire, pour en être sûre, tu n'as
qu'une solution selon oracle, vérifie bien ces trois requêtes :
Code:
1 2 3 4 5 6
|
SELECT owner, table_name FROM DBA_TABLES WHERE TABLE_NAME = 'nom_table';
SELECT * FROM DBA_SYNONYM WHERE SYNONYM_NAME = 'nom_synonyme';
SELECT * FROM DBA_VIEWS WHERE VIEW_NAME = 'nom_vue'; |
tu peux ajouter aussi :
Code:
1 2 3
|
select object_name, object_type, owner from dba_objects where object_name='nom_table' ; |
bonne chance !