2013-02-02

Connessione ad un database Firebird

L'autore dell'articolo è Ivan Prenosil. L'originale, in inglese, è reperibile all'indirizzo: Ivan Prenosil's Firebird/InterBase site.

Per connettersi ad un database Firebird bisogna specificare:
  • Nome del database
  • Nome del server
  • Protocollo
  • Informazioni per il login
  • Altri parametri di connessione
Il nome del database, del server ed il protocollo vengono combinati nella stringa di connessione.

Nome del database

Si tratta o del nome del file contenente i dati o di un alias definito in aliases.conf. È meglio, anche se non obbligatorio, utilizzare percorsi completamente specificati (fully qualified filename): d:\databases\db.fdb (evitando d:databases\db.fdb).

Nome del server

È il nome dell'elaboratore su cui risiede il server Firebird (il file dati è sempre sullo stesso elaboratore del server). Connettendosi mediante il protocollo tcp/ip è solitamente possibile specificare un indirizzo al posto di un nome (per esempio 192.168.12.34:D:\DB.FDB), ma questa funzionalità non è incorporata in Firebird, bensì offerta dal network layer (per esempio WinSock2). Bisogna considerare che in certe situazioni/configurazione questo meccanismo può essere molto più lento che ricorrere al nome.

Protocollo

Segue una lista di protocolli supportati e di come specificarli nella stringa di connessione:
 SintassiEsempio
Locale<db_file>D:\DB.FDB
tcp/ip<server>:<db_file>myserver:D:\DB.FDB
<server><numero_porta>:<db_file>myserver/3050:D:\DB.FDB
<server>/<servizio>:<db_file>myserver/gds_db:D:\DB.FDB
NetBEUI\\<server>\<db_file>\\myserver\D:\DB.FDB

Note

  1. Per connessioni all'embedded Firebird engine è obbligatorio utilizzare il protocollo locale.
  2. Non è possibile utilizzare il protocollo locale per connettersi al Classic Firebird engine.
  3. La possibilità di specificare il è disponibile da Firebird 1.
  4. La possibilità di specificare un è disponibile in tutte le versioni di Firebird/Interbase.
  5. Si può utilizzare NetBEUI solo se il server adotta Windows NT/2000/XP.
  6. Sebbene la sintassi del protocollo NetBEUI ricordi quella per la connessione a risorse condivise, la similarità è una semplice coincidenza. Non si dovrebbero mai condividere cartelle contenenti file dell'archivio.
  7. Con Firebird 1.5 il server può essere configurato in modo da disabilitare certi protocolli.
  8. Firebird 1.5 permette di utilizzare alias, specificati in aliases.conf, al posto di nomi di file.
  9. Sebbene Firebird non abbia preferenze per l'estensione da utilizzare per un database, è meglio utilizzare:
    • *.fdb - Firebird
    • *.ib - Intebase
    • *.gdb - versioni interbase pre-6 (non raccomandato a causa di problemi col Windows System Restore)

Informazioni per il login

Gli utenti sono identificati tramite username e autenticati tramite password. I loro privilegi vengono determinati specificando un ruolo (role) durante la connessione. Username e password possono esser specificati:
sulla linea comando dell'applicazione
ISQL D:\DB.FDB -U SYSDBA -P masterkey
tramite comando SQL
CONNECT 'D:\DB.FDB' USER 'SYSDBA' PASSWORD 'masterkey';
tramite variabili d'ambiente
SET ISC_USER=SYSDBA e SET ISC_PASSWORD=masterkey.

Questa funzionalità è incorporata nelle librerie lato client di Firebird e non richiede un esplicito supporto da parte dell'applicazione.

Note

  • Vengono controllati solo i primo 8 caratteri della password.
  • Se si specifica un ruolo inesistente, non vengono mostrati messaggi di errore ed all'utente viene assegnato il ruolo di default (NONE).

Altri parametri di connessione

Il modo in cui specificare altri parametri dipende dal metodo di accesso utilizzato (ISQL, FB API, IBO, FIB+…). Questa è solo una lista parziale:
  • Set di caratteri (e.g. SET NAMES ;).
  • Numero di pagine buffer (e.g. clausola CACHE in un comando CONNECT).
  • Richiesta di mantenere valori stabili per RDB$DB_KEY durante la connessione (e.g. parametro isc_dpb_dbkey_scope in DPB).
  • Richiesta di disabilitare il garbage collection durante la connessione (e.g. switch -garbage_collect del programma gbak.
  • Eliminazione crittografia password sul client.
  • Nome del file messaggi.
  • Settaggio proprietà (Forced Writes, Read Only…).