User Tools

Site Tools


Sidebar

Databases

k22:k22.9:k22.9.1:start

22.9.1 ODBC-Treiber für das DBMS PostgreSQL

22.9.1.1 Installation

Der spezielle ODBC-Treiber 'odbc-postgresql' für das DBMS PostgreSQL kann über die Anwendungsverwaltung installiert werden. Alternativ geben Sie in einem Terminal folgende Zeile ein:

$ sudo apt-get install odbc-postgresql

So sehen Sie nach, welche ODBC-Treiber bereits installiert wurden:

$ find /usr/lib -name '*odbc*.so'
/usr/lib/gambas3/gb.db.odbc.so                    →	Gambas-ODBC-Treiber
/usr/lib/x86_64-linux-gnu/odbc/libodbctxtS.so
/usr/lib/x86_64-linux-gnu/odbc/psqlodbca.so       → 	PostgreSQL-ODBC-Treiber
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so    → 	PostgreSQL-ODBC-Treiber
...
/usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so       → 	PostgreSQL-ODBC-Treiber
...

22.9.1.2 Konfiguration

Die Konfiguration der speziellen ODBC-Treiber erfolgt stets in der systemweit geltenden Datei mit dem Pfad /etc/odbcinst.ini.

Nach der Installation des ODBC-Treibers 'odbc-postgresql' für das DBMS PostgreSQL existiert bereits eine automatisch erzeugte Konfigurationsdatei /etc/odbcinst.ini mit folgendem Inhalt:

[PostgreSQL ANSI]
Description=PostgreSQL ODBC driver (ANSI version)
Driver=psqlodbca.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1
[PostgreSQL Unicode]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1

Die Namen der ODBC-Treiber stehen in den eckigen Klammern und werden bei der Konfiguration des Datenquellenamens (DataSourceName) benötigt.

22.9.1.3 Konfiguration eines Datenquellenamens (DataSourceName (DSN))

Die Konfiguration eines Datenquellenamen (DSN) erfolgt in der systemweit geltenden Datei /etc/odbcinst.ini oder lokal in der Datei /etc/odbc.ini.

In unserem Fall konfigurieren wir den Datenquellenamen in der Datei .odbc.ini im Home-Verzeichnis des angemeldeten System-Benutzers mit lokalem Bezug. Sie können alternativ die Datei /etc/odbc.ini für einen systemweit geltenden Datenquellenamen verwenden. Den Namen können Sie frei festlegen. Er darf aber in der Konfigurationsdatei nur einmal vorkommen. In der folgenden Konfiguration wird 'dsn_pg_postgres' für das DBMS PostgreSQL und die verwendete Datenbank 'postgres' verwendet. Den ODBC-Treiber `PostgreSQL Unicode` aus der Datei /etc/odbcinst.ini können Sie in der versteckten Konfigurationsdatei ~/.odbc.ini wie folgt referenzieren:

[dsn_pg_postgres]
Description 	        = PostgreSQL UTF8 DB `postgres`
Driver		        = PostgreSQL Unicode
ServerName		= localhost
Port			= 5432
User			= postgres
Password		= *PASSWORT*
Database		= postgres
ReadOnly		= No
  • Das Passwort *PASSWORT* kann entfallen und muss später von der odbc-fähigen Anwendung eingefordert werden.
  • Die Datei ~/.odbc.ini erlaubt Passwörter, aber bedenken Sie, dass diese auch für die systemweit geltende DSN-Konfigurationsdatei /etc/odbcinst.ini von jedem angemeldeten Benutzer gelesen werden kann!
  • Hinweis: Es liegt eine IP-Schnittstelle vor. Das erlaubt lokalen wie entfernten Zugriff über das Netzwerk, was eine wichtige Idee von ODBC ist. Der Port unterscheidet sich von DBMS zu DBMS und ist standardisiert.

Für die Inspektion der ODBC-Treiber können Sie das Konsolen-Programm odbcinst einsetzen. Mit den Optionen -q und -d werden die Namen aller (speziellen) ODBC-Treiber aufgelistet, die sich bisher bei unixODBC registriert haben:

$ odbcinst -d -q
[PostgreSQL ANSI]
[PostgreSQL Unicode]

Das Kommando odbcinst -q -s dagegen listet alle ODBC-Datenquellenamen (DSN) auf, die Sie zum Beispiel in der lokalen Konfigurationsdatei ~/.odbc.ini definiert haben:

hans@mint20:~$ odbcinst -q -s
[dsn_pg_postgres]

22.9.1.4 Test der ODBC-Konfiguration – PostgreSQL

Bevor die ODBC-Konfiguration zum ersten Mal getestet werden kann, sollten Sie die folgenden Voraussetzungen prüfen:

  • Der Datenbank-Server PostgreSQL ist gestartet.
  • Es existiert ein DB-Benutzer, der die erforderlichen Rechte hat, um auf die Datenbank `contacts` und die DB-Tabelle `contacts` lesend und schreibend zuzugreifen.
  • Die Inspektion der benötigten ODBC-Treiber und der ODBC-Datenquellenamen (DataSourceName (DSN)) war erfolgreich.
  • Sie können ein odbc-fähiges Programm für den Test einsetzen.

Eine gute Wahl für ein einfaches odbc-fähiges Programm ist das Konsolen-Programm `isql`, das automatisch bei der Installation von UnixODBC mit installiert wurde.

Die Syntax: isql <DSN> <DB_User> [<DB_User_Password> ] ist einfach, wobei das Passwort optional ist und von der DSN-Definition abhängt.

Für den Test wurde in der Konfigurationsdatei ~/.odbc.ini die (System-)Datenbank `postgres` eingetragen, die aber nicht genutzt wird. Statt dessen wird nur die Version von PostgreSQL abgefragt. Die Kenntnis der Version ist hier zweitrangig, weil es nur um den Test ging, sich erfolgreich über das obdc-fähige Client-Programm isql mit einer PostgreSQL-Datenbank zu verbinden:

hans@mint20:~$ isql -m47 dsn_pg_postgres postgres
+---------------------------------------+
| Connected!                            |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
+---------------------------------------+
SQL> SELECT version();
+------------------------------------------------+
| version                                        |
+------------------------------------------------+
| PostgreSQL 12.6 (Ubuntu 12.6-0ubuntu0.20.04.1) |
+------------------------------------------------+
SQLRowCount returns 1
1 rows fetched
SQL> quit
hans@mint20:~$ 

Fazit: Der Test verlief erfolgreich!

Download

The website uses a temporary session cookie. This technically necessary cookie is deleted when the browser is closed. You can find information on cookies in our privacy policy.
k22/k22.9/k22.9.1/start.txt · Last modified: 27.12.2021 (external edit)

Page Tools