Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 12h04   #1
Membre du Club
 
Inscription : mai 2010
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 47
Points : 41
Points : 41
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.
supermouton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 14h13   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
Mais la société n'utilise pas un ldap pour gérer les utilisateurs ?
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 14h49   #3
Membre du Club
 
Inscription : mai 2010
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 47
Points : 41
Points : 41
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.
supermouton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h13   #4
Membre expérimenté
 
François
Inscription : février 2010
Messages : 305
Détails du profil
Informations personnelles :
Nom : François

Informations forums :
Inscription : février 2010
Messages : 305
Points : 535
Points : 535
Un db-link?

Code :
SELECT * FROM ma_vue@leur_base;
Rams7s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h44   #5
Membre du Club
 
Inscription : mai 2010
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 47
Points : 41
Points : 41
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
supermouton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h28   #6
Membre confirmé
 
Homme Grégoire MARTIN
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Grégoire MARTIN
Âge : 32
Localisation : France, Hauts de Seine (Île de France)

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

Informations forums :
Inscription : janvier 2011
Messages : 128
Points : 225
Points : 225
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 :
SELECT * FROM <shéma de la societé S>.<nom de la vue>@<dblink créé par l'admin>
Ou sans dblink :
Code :
SELECT * FROM <shéma de la societé S>.<nom de la vue>
Ensuite tu peux te creer un synonyme pointant vers cette vue.
Code :
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.
ORA-007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h40.


 
 
 
 
Partenaires

Hébergement Web