IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

synonymes


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut synonymes
    bonjour,

    je voudrais s'il vous plait mieux connaitre l'utilité des synonymes

    merci

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Bonjour,


    Quand tu essaies d'accéder à un objet qui appartient à un autre schéma, tu es obligé de préciser le nom de l'objet de la forme suivante : propriétaire.objet
    Dans ce cas, un synonyme est une sorte d'alias, il te suffit d'indiquer le nom de ton synonyme au lieu du nom de l'objet complètement qualifé.

    Tu as des synonymes qui sont privés (ie n'appartiennent qu'a ton compte Oracle) et d'autre qui sont publiques (ie visible par tout les comptes Oracle).

    Une autre utilisation possible est quand tu remplaces une table (TTOTO) par une vue (VTOTO), un synonyme TTOTO pointant vers VTOTO te permet d'éviter d'adapter ton code.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  3. #3
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Pour faire une analogie avec le système, un synonyme, c'est exactement comme un "raccourci" sour Windows ou un lien symbolique sous Nux : c'est une autre façon, en générale plus rapide, de nommer un objet mais sans que cela ne donne de droits dessus.

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    un synonyme permet aussi de référencer une table dans une autre base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SQL> create or replace synonym scott.emp for scott.emp@db01.us.oracle.com;
     
    Synonym created.
    SQL> create or replace synonym scott.emp for scott.emp@db01.eu.oracle.com;
     
    Synonym created.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut synonymes
    alors je voudrais svp qu'on discute ce cas

    on a 3 schema différent qui ont des tables avec le meme nom (certaine tables) et cela suit aune mauvaise conception ou autre

    schema1(table1, table2, table3,........)
    schema2(table1, table2, table3,........)
    schema3(table1, table2, table3,........)

    on a eu besoin de creer des synonymes sachant qu'on peut pas toucher au code et que le nom du synonyme doit etre identique au nom de la table alors

    pour le schema1 on creer des synonymes publics pour les tables : table1, table2, table3

    par ce que pour le schema2 on peux pas faire la meme chose on a creer des synonymes privée pour chaque utilisateur "penible"

    mais qu'est ce qu'on va faire pour le schema3 si le deux schema (2 et 3) ont des utilisateur en commun

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Tu devrais expliciter un peu plus ton problème ...

    A vu de nez , je pense qu'il vaut mieux passer par l'instruction :

    alter session set current_schema = nom_du_schema;


    En gros, lorsque ton user se connecte, tu lances :

    conn toto/toto@base

    alter session set current_schema=SCHEMA1;

    ==> vérification :
    select sys_context('userenv','current_schema') x from dual ;

    (si ce toto ne doit voir que les tables de schema1)

    Parallélement à cela pour que cela marche , il faudra que ton user dispose de droit sur les tables de schema1 :
    grant select, insert, update, delete ....

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/11/2005, 08h11
  2. [Oracle 9i] Synonyme publique avec "owner dynamique&quo
    Par Worldofdada dans le forum Oracle
    Réponses: 11
    Dernier message: 03/11/2005, 16h55
  3. équivalent des Synonymes Oracle sous SQL Server 2000
    Par wello00 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/07/2005, 08h52
  4. Create Synonym : Privilege insufisant
    Par argoet dans le forum Administration
    Réponses: 6
    Dernier message: 21/09/2004, 14h07
  5. PostgreSQL & les synonymes
    Par samyl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/05/2004, 16h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo