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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : cela lui affiche la table

Si Lambda fait un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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