SPOT Blog

Progetti Soluzioni Tecnologia

Database link con PostgreSQL

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 origine
  • databaseorig : il database sul server principale di origine
  • serverdest : il server secondario di destinazione sul quale verrà creato il database link che punta a serverorig
  • schemaorig : lo schema di origine sul server principale
  • schemadest : 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;

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');

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;
Data pubblicazione : 2022-12-11 | Ultima modifica : 2022-12-11

Categorie : Soluzioni | Tecnologia
Tags : Server | Database | PostgreSQL