Creazione di utenti e connessioni
Accesso come utente admin
OmniDB viene fornito solo con l’utente admin. Se stai usando la versione server, la
prima cosa da fare è accedere come admin con la password casuale monouso che
omnidb-server ha stampato nel suo output di log alla creazione di un nuovo database
dell’applicazione (la riga che contiene initial login: admin / …), e poi cambiarla in
Impostazioni. Se la password va persa, puoi reimpostarla con omnidb-server --set-password admin. Dopo 10 tentativi di accesso falliti per lo stesso nome utente o lo stesso indirizzo IP
del client, l’accesso viene bloccato per 15 minuti.
L’applicazione desktop non prevede alcun accesso: gira come unico utente locale, quindi tutto ciò
che riguarda la gestione degli utenti descritta qui sotto lì semplicemente non c’è.
Orientarsi nell’interfaccia
L’intero spazio di lavoro si comanda dalla barra verticale di icone sul bordo sinistro della finestra: Benvenuto, Connessioni (l’icona della spina), Database, Monitoraggio, Notifiche, Permessi, Utenti connessi e Snippet in alto, e Per iniziare, Account (solo nella versione server) e Impostazioni (l’ingranaggio) in basso. Passando il mouse su un’icona ne compare il nome. Vedi Gestione dei database per come le sezioni lavorano insieme, e Impostazioni e lingue per la lingua dell’interfaccia e le altre preferenze.
Creazione di un altro utente
Apri Impostazioni in fondo alla barra, scegli la categoria Account e fai clic su Gestisci utenti. Quel pulsante lo vede solo un superutente: nelle impostazioni di un utente normale la sezione Account non compare affatto.
La finestra Gestione utenti elenca gli utenti esistenti. Fai clic su Aggiungi nuovo utente (l’icona della persona con il più) per inserire una nuova riga utente vuota, mostrata come (informazioni in sospeso) finché non la compili. Inserisci Nome utente e Nuova password, attiva Superutente? se il nuovo utente deve esserlo, quindi fai clic su Salva. Puoi creare tutti gli utenti che vuoi, modificare quelli esistenti ed eliminarne uno facendo clic sulla croce rossa nella colonna delle azioni.
Per disconnetterti fai clic sull’icona Account (la persona in fondo alla barra) e poi su Disconnetti.
L’eliminazione di un utente, o la revoca dello stato di superutente, ha effetto immediato, anche per le sessioni di quell’utente già aperte.
La sezione Connessioni
Fai clic sull’icona della spina nella barra. Le connessioni sono una sezione a tutti gli effetti dello spazio di lavoro, non una finestra a comparsa: una vista divisa con l’elenco delle connessioni salvate nella barra laterale a sinistra e, a destra, il modulo e i pulsanti della connessione selezionata.
Ogni riga dell’elenco mostra l’icona del motore di database, il nome della connessione e sotto
l’utente@server:porta a cui punta (oppure la stringa di connessione, o la destinazione
SSH per una connessione di tipo terminale). Un pallino colorato indica l’ambiente della connessione
e un’icona a forma di chiave segnala una connessione che passa da un tunnel SSH.
Creazione di connessioni
OmniDB supporta PostgreSQL, MySQL, MariaDB, Oracle, MS SQL Server, Firebird e SQLite, oltre a un tipo di connessione Terminale che apre una shell SSH invece di un database. L’elenco Tipo di connessione mostra prima PostgreSQL, poi gli altri in ordine alfabetico e infine Terminale.
Per SQLite, la connessione punta a un file di database (sulla macchina su cui gira
omnidb-server); se il file non esiste ancora, Prova connessione lo segnala e
il file viene creato al primo utilizzo della connessione. Su un server multiutente le connessioni
SQLite sono riservate ai superutenti, e alcuni parametri della stringa di connessione PostgreSQL che
leggono file sul server vengono rifiutati — vedi Sicurezza e server
multiutente.
Il pulsante + sotto l’elenco crea una connessione. Scrivi il nome nell’intestazione del
modulo a destra, scegli il Tipo di connessione e compila la scheda Informazioni di
connessione al server: Server, Porta, Database, Utente e,
facoltativamente, Password utente. Al posto dei singoli campi puoi compilare una sola
Stringa di connessione (ad esempio postgresql://postgres@localhost:5432/postgres)
e lasciare vuoto il resto. Al termine fai clic su Salva in alto a destra nel modulo.

Prova connessione, accanto, prova la connessione senza aprirla e riporta Connessione riuscita. oppure l’errore esatto restituito dal database. Il pulsante − sotto l’elenco elimina la connessione selezionata; resta disattivato per una connessione attualmente aperta in una scheda.
Password
Il campo Password utente è facoltativo e le due possibilità si comportano in modo diverso:
- Compilato: la password viene salvata nel database di configurazione di OmniDB e riutilizzata automaticamente ogni volta che apri la connessione. Prima di essere scritta viene cifrata (AES-256-GCM) con una chiave conservata nell’archivio dei segreti del sistema operativo (Portachiavi su macOS, Gestione credenziali su Windows, Secret Service su Linux) e non nel file stesso: il solo file del database non basta più a leggere le password che contiene. Se un archivio del genere non è disponibile, OmniDB ricorre a un file di chiave conservato accanto al database.
- Lasciato vuoto: non viene salvato nulla e OmniDB chiede la password quando apri la connessione. Quello che digiti resta solo nella memoria del server, per la tua sessione e quella connessione, per 30 minuti — trascorsi i quali OmniDB la chiede di nuovo.
Per PostgreSQL, al momento della connessione OmniDB cerca inoltre la password nel tuo file
.pgpass, scegliendo la stessa voce che userebbe libpq: una connessione senza password
salvata può quindi aprirsi senza alcuna richiesta. Nell’applicazione macOS in sandbox la finestra
della password offre Concedi accesso a .pgpass…: indichi il file una volta e da lì in poi
ogni connessione ricava da sé la propria password.
Se il database rifiuta il tentativo, la finestra resta a schermo mostrando l’errore ricevuto da OmniDB (fe_sendauth: no password supplied, un errore di autenticazione, un server non raggiungibile e così via), così puoi correggere la password e riprovare.
Importare connessioni da .pgpass
L’icona di importazione file, accanto ai pulsanti + e −, legge un file
.pgpass e crea una connessione PostgreSQL per ogni riga concreta che contiene, come
semplice stringa postgresql://utente@host:porta/db senza password salvata: l’idea è
continuare ad autenticarsi da quel file invece di copiare password dentro OmniDB. Le righe con
caratteri jolly (*) vengono saltate, così come quelle che corrispondono già a una
connessione esistente.
Organizzare l’elenco
- Ordine: trascina una riga in qualsiasi posizione dell’elenco. La disposizione viene salvata per ciascun utente e sopravvive sia a un ricaricamento sia a un riavvio. Le connessioni create in seguito si aggiungono in fondo.
- Gruppi: il selettore in cima alla barra laterale limita l’elenco a un solo gruppo. + Group crea un gruppo e il pulsante … accanto offre Rinomina, Gestisci connessioni (trasforma le righe in caselle di spunta con cui scegliere quali connessioni appartengono al gruppo, da confermare con Salva modifiche) ed Elimina.
- Connessioni pubbliche: l’interruttore Connessione pubblica? nel modulo rende la connessione utilizzabile da tutti gli altri utenti di OmniDB. Solo il proprietario può modificarla; gli altri utenti non vedono mai la password salvata (una password contenuta nella stringa di connessione viene mostrata loro mascherata) e il loro Prova connessione verifica sempre il server memorizzato. L’interruttore Public (n) in fondo alla barra laterale mostra o nasconde nel tuo elenco le connessioni pubbliche di altri utenti.
- Ambiente: contrassegnare una connessione come Produzione, UAT, Sviluppo o Archivio colora il suo pallino nell’elenco e il bordo della sua scheda aperta: è soprattutto un accorgimento di sicurezza, perché prendere la scheda sbagliata si veda subito.
Aprire una connessione
Fai clic su Connetti nel modulo, oppure semplicemente doppio clic su una riga dell’elenco, e OmniDB la apre in una nuova scheda esterna di connessione (Connection Outer Tab), come vedremo nel prossimo capitolo. Il clic destro su una riga apre un menu contestuale (Connetti/Modifica/Elimina — Elimina non compare per una connessione già aperta), mentre il clic destro su uno spazio vuoto dell’elenco propone Nuova connessione/Aggiorna.
Uso dei tunnel SSH
OmniDB consente di connettersi a qualsiasi database remoto attraverso tunnel SSH. Spunta Usa tunnel SSH nel modulo della connessione: questo abilita i campi sottostanti:
- Server SSH: il server a cui ti connetti via SSH. La sua chiave host deve essere già
presente nel file
~/.ssh/known_hostsdell’utente del sistema operativo che esegue OmniDB, altrimenti il tunnel viene rifiutato — vedi Sicurezza e server multiutente; - Porta SSH: la porta del server SSH (l’impostazione predefinita è 22, ma può essere una porta qualsiasi);
- Utente SSH: il nome utente del sistema operativo con cui ti connetti al server SSH;
- Password / passphrase: la password dell’utente del sistema operativo (o la passphrase della chiave qui sotto). Se lo lasci vuoto, OmniDB la chiede a ogni apertura del tunnel senza memorizzarla. Se compili il campo File di testo chiave SSH, la password è facoltativa;
- File di testo chiave SSH: il contenuto della chiave SSH privata locale con cui puoi connetterti al server SSH. OmniDB legge il file che scegli e ne salva il testo, non il file. Se compili questo campo puoi compilare anche Password / passphrase, che però in questo caso sarà la passphrase della chiave privata SSH.
Tutto ciò che salvi qui — password SSH, frase di accesso e testo della chiave — finisce nello stesso database di configurazione locale di OmniDB delle password dei database, cifrato allo stesso modo.
Quando usi i tunnel SSH devi compilare di conseguenza anche tutti i campi del database. Ma invece di essere relativi al server OmniDB, saranno relativi al server SSH. Questo può avvenire in 2 scenari, spiegati di seguito.
Se il database si trova sullo stesso server a cui ti connetti via SSH, la situazione è questa:

In questo scenario il Server del database sarà 127.0.0.1, perché il database
è sulla stessa macchina del Server SSH.
Ma il database può trovarsi fuori dal server SSH, così:

Qui il Server del database deve essere 192.168.0.10, perché è l’indirizzo
con cui il server SSH raggiunge il server di database.