Accés en lecture de table à travers des DBLink
Bonjour,
Je cherche à faire accéder un utilisateur lambda à des tables d'une base de données distantes sans lui donner le droit de modifier ces tables
Pour se faire je pensais utiliser les DB Link public mais je n'arrive qu'à créer un DB Link public qui donne l'accés en modif à mon utilisateur.
Un schema X (user X mot de passe passX) dont on ne veut pas ouvrir en modif les tables
Un schema Lambda (user lambda mot de passe lambda) qui doit pouvoir accéder aux tables de X en lecture
Sur X on crée le DB Link public suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
create shared public database link DLX
connect to X identified by passX
AUTHENTICATED BY lambda IDENTIFIED BY lambda
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SID = xe)
)
)'; |
Si Lambda fait un :
Code:
select * from test@dbx
cela lui affiche la table :D
Si Lambda fait un :
Code:
update test@dbx set nom='z' where nom='x'
cela marche aussi :? mais c'est logique vu que le DB Link arrive avec le user/mot de passe privilégié.
Comment faire pour que Lambda puisse faire des select mais pas de update, insert et autres plaisanteries ?
A noter que je ne suis pas accro aux DBLink si quelqu'un a autre chose à proposer ...
Merci de vos réponses
Jean Michel Plancade
plancade@mls.nc
Mon esprit à rejoint mon corps
Citation:
Envoyé par
Z3phur
Pourquoi ne pas créer une vue et ton user lambda ira interroger la vue via le dblink?
sinon tu crées sur la base X un user toto qui a les droits de select sur la table, et ton dblink va sur ton user toto interroger la table x.table. (je pense que c'était ce que voulais te dire Jerome_Mtl.
Ca y est ... aprés un bon kf les synapses vont mieux.
Merci à vous deux car effectivement je n'avais pas compris le coup de la vue pour le user prorpiétaire du DB Link (il faut dire que je m'entêtais avec un DB Link public ce qui faussait la donne).
- Un user avec un DB Link privé et des vues sur les tables. Uniquement select pour le user de lecture
- Un user de lecture que lit les tables du premier user (en fait des vues à travers un DBLink sur les vrais tables)
Ben alleluia et merci à vous deux :king: