In PostgreSQL è possibile creare dei database links e connettere due database separati, sia che risiedano sullo stesso server o su servers separati, purchè siano accessibili tramite rete.
La nomenclatura utilizzata è la seguente :
serverorig
: il server principale di originedatabaseorig
: il database sul server principale di origineserverdest
: il server secondario di destinazione sul quale verrà creato il database link che punta aserverorig
schemaorig
: lo schema di origine sul server principaleschemadest
: lo schema di destinazione sul server secondario
1. Installazione dell’estensione
Il primo passo da compiere è installare su serverdest
l’estensione postgres_fdw
come utente postgres
:
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
2. Creazione utente per accesso tramite database link
Su serverorig
creare un utente che consenta la connessione da serverdest
e gli accessi
allo schema schemaorig
e tabelle interessate. Per semplicità l’utente sarà userdest
con
password passworddest
e dovrà avere accesso alla tabella tableorig
con i privilegi desiderati :
(SELECT, INSERT, UPDATE, DELETE
)
3. Creazione del database link
Su serverdest
:
CREATE serverorig FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'serverorig', port 'portorig', dbname 'databaseorig');
Creare su serverdest
il mapping per l’utente (myuser
) che deve poter usare il database link
CREATE USER MAPPING FOR myuser SERVER serverorig OPTIONS ( user 'userdest' , password 'passworddest');
5. Importare la struttura delle tabelle dallo schema principale ed assegnare i permessi
Su serverdest
:
IMPORT FOREIGN SCHEMA schemaorig LIMIT TO (tableorig) FROM SERVER serverorig INTO schemadest;
GRANT ALL ON TABLE schemadest.tableorig TO myuser;
Categorie :
Soluzioni
|
Tecnologia
Tags :
Server
|
Database
|
PostgreSQL