[Oracle] : lister les synonymes et connaître le OWNER et la source

Print Friendly, PDF & Email

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 

Découvrez  [Oracle] : comment lister les tables lockées et les dévérouiller ?