speedtech-website/public/blog/postgresql-database-link/index.html
2025-12-12 18:05:59 +01:00

54 lines
No EOL
16 KiB
HTML

<!doctype html><html lang=it><head><meta charset=utf-8><meta name=robots content="all,follow"><meta name=googlebot content="index,follow,snippet,archive"><meta name=viewport content="width=device-width,initial-scale=1"><title>SpeedTech | Blog - Database link con PostgreSQL</title>
<meta name=author content><meta name=keywords content="Servizi di informatica,Sviluppo software,Sicurezza,VPN,Firewall,Servers con Linux,Email privata"><meta name=description content="SpeedTech - Servizi di informatica"><meta name=generator content="Hugo 0.123.7"><link href=/css/main.css rel=stylesheet><link rel="shortcut icon" href=/img/favicon.ico type=image/x-icon><link rel=apple-touch-icon href=/img/apple-touch-icon.png><meta property="og:title" content="Database link con PostgreSQL"><meta property="og:description" content="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."><meta property="og:type" content="article"><meta property="og:url" content="https://speedtech.it/blog/postgresql-database-link/"><meta property="og:image" content="https://speedtech.it/images/blog/postgresql.jpg"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-12-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-12-11T00:00:00+00:00"><meta property="og:site_name" content="SpeedTech"><script src=/js/htmx/htmx.min.js defer></script><script src=/js/main.js defer></script></head><body hx-boost=true lang=it><nav id=topnav><div class=container><a class=navbar-brand href=/><img class=img-fluid src=/img/logo.svg alt=SpeedTech></a><div id=topmenu><button id=responsive-button onclick='htmx.toggleClass(htmx.find("#topmenu"),"responsive")'><i class="icon icon-menu"></i></button><ul><li class=dropdown><a href=/#home-bottom role=button>Servizi</a><ul class=submenu><li><a href=/servizio/sviluppo-applicazioni/ title="Progettazione e sviluppo di applicazioni software"><i class="icon icon-desktop"></i>
Sviluppo applicazioni</a></li><li><a href=/servizio/soluzioni-e-commerce/ title="Sviluppo e integrazione di piattaforme per l'e-commerce"><i class="icon icon-cart"></i>
Soluzioni e-commerce</a></li><li><a href=/servizio/backend-siti-web-cms-personalizzati/ title="Sviluppo backend siti web e CMS personalizzati "><i class="icon icon-layers"></i>
Backend siti web e CMS</a></li><li><a href=/servizio/e-mail-privata/ title="E-mail privata: hosting, sicurezza ed archiviazione"><i class="icon icon-email"></i>
Servizio e-mail privato</a></li><li><a href=/servizio/servers-linux-gestiti/ title="Servers Linux gestiti"><i class="icon icon-server"></i>
Servers Linux gestiti</a></li><li><a href=/servizio/soluzioni-collaborazione-online-offline/ title="Soluzioni di condivisione e collaborazione online e offline"><i class="icon icon-cloud"></i>
Collaborazione online e offline</a></li><li><a href=/servizio/clients-con-linux/ title="Sistemi clients con Linux: installazione e configurazione"><i class="icon icon-computer"></i>
Clients con Linux</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/ title="Strutture di sicurezza: firewalls, soluzioni di crifratura, backups"><i class="icon icon-security"></i>
Sicurezza</a></li><li><a href=/servizio/domotica-opensource/ title="Soluzioni di domotica open source"><i class="icon icon-robot"></i>
Domotica open source</a></li></ul></li><li><a href=https://brainminder.it>BrainMinder</a></li><li><a href=https://forgejo.speedtech.it/explore/repos>Git repository</a></li><li><a href=/#contact>Contatto</a></li><li class=active><a href=/blog>Blog</a></li><li><a href=https://speedtech.it/en/blog/postgresql-database-link/>EN</a></li></ul></div></div></nav><header class=blog-single><div class=container><div class=row><div class="col s12 m9 l9"><h2><a href=/blog/>Blog</a></h2><h3 class=title>Database link con PostgreSQL</h3></div></div></div></header><div id=page-content><div class=container><div class=row><div class="col s12 m9 l9 articlecontent"><p class=text-center><img class=img-fluid src=/images/blog/postgresql.jpg width=400></p><div style=text-align:justify;margin-bottom:16px><p>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.</p><p>La nomenclatura utilizzata è la seguente :</p><ul><li><code>serverorig</code> : il server principale di origine</li><li><code>databaseorig</code> : il database sul server principale di origine</li><li><code>serverdest</code> : il server secondario di destinazione sul quale verrà creato il database link che punta a <code>serverorig</code></li><li><code>schemaorig</code> : lo schema di origine sul server principale</li><li><code>schemadest</code> : lo schema di destinazione sul server secondario</li></ul><h4 id=1-installazione-dellestensione>1. Installazione dell&rsquo;estensione</h4><p>Il primo passo da compiere è installare su <code>serverdest</code> l&rsquo;estensione <code>postgres_fdw</code> come utente <code>postgres</code> :</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> EXTENSION <span style=color:#66d9ef>IF</span> <span style=color:#66d9ef>NOT</span> <span style=color:#66d9ef>EXISTS</span> postgres_fdw;
</span></span></code></pre></div><h4 id=2-creazione-utente-per-accesso-tramite-database-link>2. Creazione utente per accesso tramite database link</h4><p>Su <code>serverorig</code> creare un utente che consenta la connessione da <code>serverdest</code> e gli accessi
allo schema <code>schemaorig</code> e tabelle interessate. Per semplicità l&rsquo;utente sarà <code>userdest</code> con
password <code>passworddest</code> e dovrà avere accesso alla tabella <code>tableorig</code> con i privilegi desiderati :
(<code>SELECT, INSERT, UPDATE, DELETE</code>)</p><h4 id=3-creazione-del-database-link>3. Creazione del database link</h4><p>Su <code>serverdest</code> :</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> serverorig <span style=color:#66d9ef>FOREIGN</span> <span style=color:#66d9ef>DATA</span> WRAPPER postgres_fdw <span style=color:#66d9ef>OPTIONS</span> (<span style=color:#66d9ef>host</span> <span style=color:#e6db74>&#39;serverorig&#39;</span>, port <span style=color:#e6db74>&#39;portorig&#39;</span>, dbname <span style=color:#e6db74>&#39;databaseorig&#39;</span>);
</span></span></code></pre></div><p>Creare su <code>serverdest</code> il mapping per l&rsquo;utente (<code>myuser</code>) che deve poter usare il database link</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span><span style=color:#66d9ef>CREATE</span> <span style=color:#66d9ef>USER</span> MAPPING <span style=color:#66d9ef>FOR</span> myuser SERVER serverorig <span style=color:#66d9ef>OPTIONS</span> ( <span style=color:#66d9ef>user</span> <span style=color:#e6db74>&#39;userdest&#39;</span> , password <span style=color:#e6db74>&#39;passworddest&#39;</span>);
</span></span></code></pre></div><h4 id=5-importare-la-struttura-delle-tabelle-dallo-schema-principale-ed-assegnare-i-permessi>5. Importare la struttura delle tabelle dallo schema principale ed assegnare i permessi</h4><p>Su <code>serverdest</code> :</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sql data-lang=sql><span style=display:flex><span>IMPORT <span style=color:#66d9ef>FOREIGN</span> <span style=color:#66d9ef>SCHEMA</span> schemaorig <span style=color:#66d9ef>LIMIT</span> <span style=color:#66d9ef>TO</span> (tableorig) <span style=color:#66d9ef>FROM</span> SERVER serverorig <span style=color:#66d9ef>INTO</span> schemadest;
</span></span><span style=display:flex><span><span style=color:#66d9ef>GRANT</span> <span style=color:#66d9ef>ALL</span> <span style=color:#66d9ef>ON</span> <span style=color:#66d9ef>TABLE</span> schemadest.tableorig <span style=color:#66d9ef>TO</span> myuser;
</span></span></code></pre></div></div><small>Data pubblicazione : 2022-12-11</small> | <small>Ultima modifica : 2022-12-11</small><p><small><a href=/categories/soluzioni/>Soluzioni</a> |
<a href=/categories/technology/>Technology</a> |
<a href=/tags/server/>Server</a>
|
<a href=/tags/database/>Database</a>
|
<a href=/tags/postgresql/>PostgreSQL</a></small></p></div><section class="col s12 m3 l3 text-center blogsidebar"><div class=tags><h4 class=text-center>Tags</h4><small><a href=/tags/custom-cms/>Custom CMS</a>
<a href=/tags/database/>Database</a>
<a href=/tags/desktop-application/>Desktop Application</a>
<a href=/tags/dovecot/>Dovecot</a>
<a href=/tags/e-commerce/>E-Commerce</a>
<a href=/tags/file-server/>File Server</a>
<a href=/tags/firewall/>Firewall</a>
<a href=/tags/home-assistant/>Home Assistant</a>
<a href=/tags/home-automation/>Home Automation</a>
<a href=/tags/mariadb/>MariaDB</a>
<a href=/tags/nas/>NAS</a>
<a href=/tags/networking/>Networking</a>
<a href=/tags/office-server/>Office Server</a>
<a href=/tags/openssl/>OpenSSL</a>
<a href=/tags/opnsense/>OpnSense</a>
<a href=/tags/oracle-database/>Oracle Database</a>
<a href=/tags/pascal/>Pascal</a>
<a href=/tags/postgresql/>PostgreSQL</a>
<a href=/tags/privacy/>Privacy</a>
<a href=/tags/pwa/>PWA</a>
<a href=/tags/router/>Router</a>
<a href=/tags/security/>Security</a>
<a href=/tags/server/>Server</a>
<a href=/tags/software-development/>Software Development</a>
<a href=/tags/system-administration/>System Administration</a>
<a href=/tags/ufw/>UFW</a>
<a href=/tags/vpn/>VPN</a>
<a href=/tags/web-application/>Web Application</a></small></div><div class="row articles"><h4 class=text-center>Ultimi articoli</h4><div class="col s12 m12 l12 article" style=text-align:center><div class=article-wrapper><a href=https://speedtech.it/blog/automazione-casa-con-home-assistant/><img class=img-fluid src=/images/blog/home-assistant_hud8587ebef75f9af2ca0bbe5f5b19dc45_61256_200x0_resize_q75_box.jpg width=200 height=142 alt="Automazione casa con Home Assistant" class=img-fluid title="Automazione casa con Home Assistant"></a><div class=caption style=max-width:250px;margin:auto><div class=caption-text><a class=text-title style=font-weight:400;font-size:14px href=https://speedtech.it/blog/automazione-casa-con-home-assistant/>Automazione casa con Home Assistant</a></div><div class=caption-bg></div></div></div></div><div class="col s12 m12 l12 article" style=text-align:center><div class=article-wrapper><a href=https://speedtech.it/blog/brainminder-intro/><img class=img-fluid src=/images/blog/brainminder_hu1e83e6fcbe10acdd81c6d0d0e9901bac_73079_200x0_resize_box_3.png width=200 height=123 alt="BrainMinder - second brain web application" class=img-fluid title="BrainMinder - second brain web application"></a><div class=caption style=max-width:250px;margin:auto><div class=caption-text><a class=text-title style=font-weight:400;font-size:14px href=https://speedtech.it/blog/brainminder-intro/>BrainMinder - second brain web application</a></div><div class=caption-bg></div></div></div></div><div class="col s12 m12 l12 article" style=text-align:center><div class=article-wrapper><a href=https://speedtech.it/blog/wmtrento-spreadsheet-sync/><img class=img-fluid src=/images/project/wmtrento-jspreadsheet_hu80e88a9b53e97bd051be5a21f49c7525_29205_200x0_resize_q75_box.jpg width=200 height=123 alt="Applicazione web con funzionalità di foglio di calcolo e sincronizzazione" class=img-fluid title="Applicazione web con funzionalità di foglio di calcolo e sincronizzazione"></a><div class=caption style=max-width:250px;margin:auto><div class=caption-text><a class=text-title style=font-weight:400;font-size:14px href=https://speedtech.it/blog/wmtrento-spreadsheet-sync/>Applicazione web con funzionalità di foglio di calcolo e sincronizzazione</a></div><div class=caption-bg></div></div></div></div><div class="col s12 m12 l12 article" style=text-align:center><div class=article-wrapper><a href=https://speedtech.it/blog/postgresql-database-link/><img class=img-fluid src=/images/blog/postgresql_hu0d75c994c55fb1d165504c57f70131c4_34984_200x0_resize_q75_box.jpg width=200 height=142 alt="Database link con PostgreSQL" class=img-fluid title="Database link con PostgreSQL"></a><div class=caption style=max-width:250px;margin:auto><div class=caption-text><a class=text-title style=font-weight:400;font-size:14px href=https://speedtech.it/blog/postgresql-database-link/>Database link con PostgreSQL</a></div><div class=caption-bg></div></div></div></div></div></section></div></div></div><footer><div class="row container menu"><div class="col m3 l3"><h4>Sviluppo e integrazione software</h4><ul><li><a href=/servizio/sviluppo-applicazioni/>Applicazioni web</a></li><li><a href=/servizio/sviluppo-applicazioni/>Applicazioni desktop</a></li><li><a href=/servizio/sviluppo-applicazioni/>Applicazioni per mobile (PWA)</a></li><li><a href=/servizio/siti-web-cms-personalizzati/>Siti web multilingua statici e dinamici</a></li><li><a href=/servizio/siti-web-cms-personalizzati/>CMS personalizzati</a></li><li><a href=/servizio/soluzioni-e-commerce/>E-commerce</a></li></ul></div><div class="col m3 l3"><h4>Comunicazione e collaborazione</h4><ul><li><a href=/servizio/e-mail-privata/>Email privata</a></li><li><a href=/servizio/e-mail-privata/>GPG per email</a></li><li><a href=/servizio/soluzioni-collaborazione-online-offline/>Nextcloud</a></li><li><a href=/servizio/soluzioni-collaborazione-online-offline/>TrueNAS</a></li><li><a href=/servizio/soluzioni-collaborazione-online-offline/>Seafile</a></li><li><a href=/servizio/servers-linux-gestiti/>Servers con Linux</a></li></ul></div><div class="col m3 l3"><h4>Sicurezza</h4><ul><li><a href=/servizio/sicurezza-firewalls-vpn/>Firewall OpnSense</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>Password manager Vaultwarden</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>VPN con Wireguard</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>VPN con Fritz!Box</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>Cifratura dati</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>Backup in Cloud</a></li><li><a href=/servizio/sicurezza-firewalls-vpn/>Protezione da ransomware</a></li></ul></div><div class="col m3 l3"><h4>Domotica open source</h4><ul><li><a href=/servizio/domotica-opensource/>HomeAssistant</a></li><li><a href=/servizio/domotica-opensource/>Tasmota</a></li><li><a href=/servizio/domotica-opensource/>Integrazione con dispositivi Shelly</a></li><li><a href=/servizio/domotica-opensource/>Integrazione con dispositivi Sonoff</a></li></ul></div></div><div class="row container"><div class="col m4 l4 footer-contact-details"><p>SpeedTech di Gerola Ing. Roberto</p><p>VAT ID : IT02446960227</p><p>REA : TN - 225335</p><p class=copyright>2001-2024</p></div><div class="col m4 l4 footer-contact-details" id=contact><p><span class=footer-title><i class="icon icon-phone"></i>Telefono : </span><a href=tel:+390464414131 title="Telephone contact">+39 0464 414131</a></p><p><span class=footer-title><i class="icon icon-email"></i>Email : </span><a href=mailto:%72%6f%62%65%72%74%6f%40%73%70%65%65%64%74%65%63%68%2e%69%74>Invia una email</a></p><h4 style=margin-top:20px><i class="icon icon-location"></i>Indirizzo</h4><p>Viale Trento, 31<br>IT-38068 Rovereto (TN) ITALY</p></div><div class="col m4 l4 footer-contact-details"><h4 style=margin-top:20px><i class="icon icon-link"></i>Links</h4><p><i class="icon icon-git"></i> <a href=https://forgejo.speedtech.it/explore/repos>Git code repository</a></p><p><img alt=BrainMinder style=width:32px;vertical-align:middle src=https://brainminder.it/brainminder-icon.svg><a href=https://brainminder.it>BrainMinder</a></p></div></div></footer></body></html>