Db links
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Objet Oracle |
| Rôle | Lien entre plusieurs bases de données |
| Voir aussi | Oracle · Client oracle · Directory |
Un database link (db link) permet à une session connectée sur une base de référencer directement des objets d'une autre base, locale ou distante, via une connexion Oracle Net.
Afficher
SELECT * FROM dba_db_links;
Créer
CREATE DATABASE LINK DBSTAR CONNECT TO ADMIN IDENTIFIED BY pwd USING 'DBSTAR.world';
Supprimer
DROP DATABASE LINK "DB_link_name";
En cas de suppression nécessaire depuis un autre schéma que le propriétaire :
CREATE PROCEDURE user.drop_db_link AS BEGIN EXECUTE IMMEDIATE 'DROP DATABASE LINK MTOR'; END drop_db_link; / -- le / sur sa propre ligne referme le bloc PL/SQL
exec user.drop_db_link;
Générer les requêtes de suppression pour tous les liens d'un propriétaire donné :
SELECT 'DROP DATABASE LINK "'||db_link||'";' FROM dba_db_links WHERE owner = 'OWNER';
Db link avec mot de passe pré-haché (migration)
Utile lors d'une migration de schéma : recréer un lien identique sans connaître le mot de passe en clair, à partir du hash déjà connu par Oracle (IDENTIFIED BY VALUES) :
CREATE PUBLIC DATABASE LINK "DATAB.PRD" CONNECT TO "INTER" IDENTIFIED BY VALUES '<hash_du_mot_de_passe>' USING 'DATAB.WORLD'; SELECT * FROM dual@DATAB.PRD; SELECT * FROM dba_db_links;
Voir aussi
Notes
- Procédure de suppression cross-schéma inspirée d'un article publié sur dbaoracletips.blogspot.fr (« How to drop/create database link from... »).