Comment créer un utilisateur en lecture seule sur votre base de données

Pour extraire les données de vos logiciels métiers, il nous faut :

  • l'IP et le port de la base de donnée (vu par la machine virtuelle Manty dans votre réseau, un DNS peut aussi fonctionner)
  • Le nom de compte et le mot de passe d'un utilisateur en lecture seule sur les schémas de données

Pour les bases Oracles, ces données doivent être transmises via le DSN.

1. Trouver les DSN d'une base oracle

Vous pouvez le DSN dans le fichier tsnname.ora. 

  • sur un serveur Unix dans le dossier /home/oracle/oracle/product/10.2.0/db_1/network/admin  
  • sur un serveur Windows dans \oracle\product\10.2.0\client_1\network\admin .

Le fichier contient plusieurs lignes de DSN assignant le nom du schéma de base de donnée avec les informations réseau de cette base.
Nous avons besoin du DSN en entier pour intégrer la base oracle.

2. Ajouter un utilisateur en lecture seule

Chaque base de données possède sa propre façon de créer un utilisateur en lecture seule. En fonction du langage de la base, vous pouvez vous référer à une des sections ci-dessous.

a. Oracle

CREATE USER manty IDENTIFIED BY "<password>";

GRANT CONNECT TO manty;
GRANT CREATE SESSION TO manty;
GRANT UNLIMITED TABLESPACE TO manty;

BEGIN
FOR x IN (SELECT * FROM all_tables WHERE owner='<schema>')
LOOP  
EXECUTE IMMEDIATE 'GRANT SELECT ON ' || x.owner || '."' || x.table_name || '" TO manty';
END LOOP;
END;
/

Il vous faudra remplacer <password>  par un mot de passe sécurisé et <schema>  par le schéma de votre base de donnée.

Vous pouvez générer un mot de passe sécurisé ici. Pour nous le partager, vous pouvez utiliser un service comme pastebin en activant l'option "Burn after read".

Globalement, ce script parcourt toutes les tables du schéma et exécute une GRANT SELECT  sur chacune de ses tables.

b. SQL Serveur 

Pour en savoir plus : Vous pouvez vous référer à cet article pour créer l'utilisateur en lecture seule. 

Pour tout problème ou interrogation technique, n'hésitez pas à nous contacter via notre module de conversation en bas à droite de cette page ↘️ 🙂