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;

#### 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;

Data pubblicazione : 2022-12-11 | Ultima modifica : 2022-12-11

Soluzioni | Technology | Server | Database | PostgreSQL

#### Tags

Custom CMS Database Desktop Application Dovecot E-Commerce File Server Firewall Home Assistant Home Automation MariaDB NAS Networking Office Server OpenSSL OpnSense Oracle Database Pascal PostgreSQL Privacy PWA Router Security Server Software Development System Administration UFW VPN Web Application

#### Ultimi articoli

Automazione casa con Home Assistant
BrainMinder - second brain web application
Applicazione web con funzionalità di foglio di calcolo e sincronizzazione
Database link con PostgreSQL