Oracle n’est pas toujours simple à comprendre et aujourd’hui faisons un petit focus sur les synonymes. En gros un synonyme c’est une sorte d’alias qui permet de se référer à un autre objet de l’instance. Il permet notamment de gérer les droits et les accès à certaines données.
Un synonyme peut être public dans ce cas il est ouvert à tout le monde. A l’opposé il peut être privé et dans ce cas seul le schéma (utilisateur) qui l’a créé pourra y accéder.
Attention tout le monde ne peut pas créer des synonyme, l’utilisateur doit disposer du GRANT CREATE SYNONYM pour pouvoir le faire.
Alors vous avez une base, comment lister les synonymes et y voir plus clair ?
A l’aide de la table all_synonyms :
SQL> desc all_synonyms Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(30) SYNONYM_NAME VARCHAR2(30) TABLE_OWNER VARCHAR2(30) TABLE_NAME VARCHAR2(30) DB_LINK VARCHAR2(128)
Vous pouvez lancer :
SQL> SET LINESIZE 1000 SQL> select SYNONYM_NAME, TABLE_NAME, TABLE_OWNER, OWNER from all_synonyms;
Pour créer un synonyme :
CREATE SYNONYME schema.nom_synonyme for schema.nom_objet