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

SQL Oracle Discussion :

Synchronisation entre une table et une vue


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut Synchronisation entre une table et une vue
    Bonjour,

    Tout d'abord veuillez m'excuser si jamais le post n'est pas dans le bon forum, car je ne savais pas trop dans quelle section le mettre :s

    Je vais essayer de vous expliquer mon problème de la manière la plus simple possible

    Voilà, une société (appelé S) et la mienne avons un client en commun (appelé C).
    La société S possède déjà une application Web (avec base de données Oracle) chez le client C.

    le client C nous à demandé un developpement (une application Web, developpé en ASP.net MVC), mais nous a également demandé qu'il n'y ai qu'un seul couple login / mdp des utilisateurs pour les deux applications (celle de S et la mienne).

    Ainsi, comme la socété S est déja présente chez le client, je pensais me greffer sur leur base de données (apparement une 11G), créer mes tables dans leur base, puis accéder aux identifiants des utilisateurs de la société S (vu qu'au final se seront les mêmes).

    Seulement la société S n'est pas très motivé pour nous laisser accéder pleinement à leur base de données (logique en quelques sorte, je les comprend ^^), et donc pour solutionner ce problème, va nous créer une vue sur leur base en me créant un compte, et donc je pourrais accéder aux information d'identification des utilisateurs via cette vue en m'identifiant avec le login qu'il me transmettront.

    Cela me convient parfaitement, seulement, maintenant je me pose une question assez importante, comment faire pour mettre en relation la vue qu'il me créé sur leur instance de BDD, et ma base de données (donc sur l'instance de BDD que l'admin réseaux du client C me donnera) ?

    Je pensais, dans oracle, à me connecter à la base de données de la société S afin d'éffectuer des requetes de selection sur la vue puis, mais j'aurais préféré autre chose comme par exemple que ma table ou sont les informations d'identification de mon schéma soit mise à jour periodiquement (ou automatiquement) par les information de la vue via un script, ou un job oracle peut être.

    En quelques sorte, j'aimerais synchroniser automatiquement la vue qui m'est mise à disposition et ma table dans ma BDD

    Voilà, j'espère que vous avez compris un peu près mon problème tout de même, et attend vos conseils avisés

    Bonne journée.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Mais la société n'utilise pas un ldap pour gérer les utilisateurs ?

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour punkoff,

    Merci de ta réponse, mais non, tout les identifiants des clients qui utilisent l'application de la société S sont stockés dans la base de donnée de l'application, une base oracle.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut
    Un db-link?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ma_vue@leur_base;

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour Rams7s,

    Merci pour l'indication, je crois que dans un premier temps je vais partir la dessus, mais comment se passe l'authentification à la base (le login et le mdp) dans un db-link ?

    Mais donc il n'y aurait pas de procedure ou de fonction qui permettrait de mettre à jour automatiquement une table en fonction d'une vue ?

    je sens que si je dois le faire moi même cette routine de mise à jour automatique, je vais bien me prendre la tête ^^ lol

    que me conseillerez-vous si je partirais dans l'écriture d'une fonction / procédure de mise à jour : tache windows ou jobs oracle ?

    Merci de vos réponses

    bonne soirée

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Par défaut
    Bonjour,

    Nous avons bien la base de donnée de la société S et la tienne qui seront toutes les deux hébergées chez le client C ?

    Si oui il faut comme l'a souligné Rams7s demander à l'admin de ton client C de créer un dblink entre ta future base de donnée et celle de la societé S si elle sont distantes ( pas sur la même instance Oracle ) sinon un droit de lecture de ton client vers la vue de la société S devrait suffire.

    Dans le cas d'un dblink tu pourras alors consulter la vue comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM <shéma de la societé S>.<nom de la vue>@<dblink créé par l'admin>
    Ou sans dblink :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM <shéma de la societé S>.<nom de la vue>
    Ensuite tu peux te creer un synonyme pointant vers cette vue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE SYNONYM mon_synonyme FOR <shéma de la societé S>.<nom de la vue>@<dblink créé par l'admin>
    Tu pourras alors copier les valeurs via un batch ou job oracle ou Vue matérialisée (ce qui n'a de la valeur que si tu dois y apporter des modifs sinon un simple acces en lecture devrait suffire):

    Après plusieurs points :

    1) tu ne seras pas maitre des données de la société S , donc en cas de problèmes de cette dernière tu seras fortement impacté..
    2) Vos populations d'utilisateurs sont elles vraiment ISO ?
    2.1) N'y a t il pas d'exceptions ?
    2.2) Si dans ton appli il y a création d'un nouvel utilisateur, celui ci devra t il pouvoir se connecter sur l'appli S ? (réciprocité des authentifications )
    ...


    bonne chance !

    Cordialement.

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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