
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 a serverorigschemaorig : lo schema di origine sul server principaleschemadest : lo schema di destinazione sul server secondarioIl primo passo da compiere è installare su serverdest l’estensione postgres_fdw come utente postgres :
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
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)
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');
Su serverdest :
IMPORT FOREIGN SCHEMA schemaorig LIMIT TO (tableorig) FROM SERVER serverorig INTO schemadest;
GRANT ALL ON TABLE schemadest.tableorig TO myuser;
Soluzioni | Technology | Server | Database | PostgreSQL