• Zielgruppen
  • Suche
 

SQL- und Administrations-Zugriff auf Postgres-DB

Es gibt verschiedene Möglichkeiten, eine PostgreSQL-Datenbank anzusprechen. Die einfachste Möglichkeit eine Verbindung herzustellen und die Datenbank zu administrieren bietet das unter Linux mitgelieferte Programm psql (vgl. PSQL Dokumentation), welches man durch das Paket postgresql-client (Paketname variiert je nach Distribution) installiert. Unter Windows sucht man sich den dementsprechenden Installer von der PSQL-Download-Webseite.

Eine Verbindung zur Datenbank inklusive Serverzertifikatsprüfung stellt man im Linux-Terminal wie folgt her:

psql "hostaddr=130.75.6.83 host=psql.rrzn.uni-hannover.de user=luh_demo_ro sslmode=verify-full sslrootcert=/etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem dbname=luh_demo"

Hat man sich mit der Datenbank erfolgreich verbunden, kann man administrative Befehle ausführen. (vgl. PSQL Tutorial)

PSQL Befehle

Befehl Information
\quit beendet die Verbindung zur Datenbank
\l zeigt eine Liste der Datenbanken auf dem Server
select * from pg_user; zeigt alle User
select * from pg_tables; zeigt alle Tabbellen (inclusive Systemtabellen)
\d zeigt Tabellen im aktuellen Kontext (database/schema)
\c database; wechselt die die aktuelle Datenbank
\dn zeigt alle Schemas in der aktuellen Datenbank
GRANT ALL ON myschema TO user; gibt Berechtigungen für einen Benutzer auf ein Schema
\z [object] zeigt die Berechtigungen eines Datenbankobjekts
\? zeigt die Hilfe

PgAdmin3

PgAdmin3 ist eine graphische Oberfläche die zur Verwaltung einer Postgresql Datenbank verwendet werden kann. Die Software empfiehlt sich durch die gute Übersicht der einfach gehalteten Oberfläche und der guten Bedienbarkeit.PgAdmin3 kann auf Unix als auch auf Microsoft Windows installiert werden. Viele Distributionen liefern das Programm gleich bei der Installation von PostgreSQL mit, fertige Pakete sind auf der Webseite des Projekts zum Download verfügbar.

Installation

Die Installation von PgAdmin3 gestaltet sich einfach und ist mit den "Bordmitteln" des jeweiligen Betriebssystems zu erledigen. Unter Microsoft Windows kann PgAdmin3 gleich bei der Installation von PostgreSQL mit installiert werden, das Paket enthält unter anderem auch psql als Benutzerschnittstelle.   

Konfiguration

Die Konfiguration von PgAdmin3 besteht im wesentlichen im Anlegen eines neuen "Servers". Dazu klickt man in PGAdmin3 auf den Reiter "Datei" und wählt "Server hinzufügen" aus. Folgende Optionen sind unter "Eigenschaften" zu konfigurieren:

 

 

Name: DB-Server LUIS
Host: psql.rrzn.uni-hannover.de
Port: 5432
WartungsDB: postgres
Benutzername: luh_demo_ro (rw oder admin)
Passwort: passwort

Möchte man Passwörter für psql nicht ständig eingeben, kann man sie in der Datei .pgpass im Homeverzeichnis (des Users, als der man arbeitet) ablegen. Dadurch erspart man sich das sonst notwendige eintippen des Passworts beim Aufbau einer Verbindung zum Datenbankserver. Die pgpass Konfiguration wird von (den meisten) Postgres Anwendungen verwendet, und ist daher sinnvoll. Unter Windows liegt die Datei %APPDATA%\postgresql\pgpass.conf im Profilverzeichnis des Users. Unter Unix müssen die Zugriffsrechte der Datei 0600 (nur les- und schreibbar für den Eigentümer) lauten, andernfalls wird sie von psql nicht akzeptiert. Die Datei hat das folgende Format:

hostname:port:database:username:password


z.B:

psql.rrzn.uni-hannover.de:5432:luh_demo:luh_demo_admin:passwort
psql.rrzn.uni-hannover.de:5432:luh_demo:luh_demo_rw:passwort
psql.rrzn.uni-hannover.de:5432:luh_demo:luh_demo_ro:passwort

Jedes Feld muss angegeben werden, kann jedoch auch ein * enthalten, wenn alle Möglichkeiten zutreffen sollen. psql liest die Datei zeilenweise aus und wählt den ersten passenden Eintrag. Man sollte also spezifische Einträge an den Anfang der Datei setzen und allgemeine Einträge weiter hinten positionieren. Siehe Dokumentation zu pgpass.

SSL Konfiguration

Des Weiteren sollte die Verbindung zum Server mit SSL gesichert werden, die notwendige Konfiguration zur Überprüfung des Server Zertifikats benötigt die Zertifikatskette der UH-CA, nach dem Download der Datei chain.txt benennt man diese in chain.crt um und hinterlegt diese unter Windows in dem Verzeichnis %APPDATA%\postgresql\chain.crt und unter Linux in seinem Homeverzeichnis. Nun klickt man im Konfigurationsmanager auf den Reiter SSL und konfiguriert die Verbindung. Bei SSL: wählt man die Option verify-full aus und bei Datei des Server Root Certificats: gibt man den Pfad zur chain.crt an, in diesem Beispiel /home/User/chain.crt, unter Windows wäre das %APPDATA%\postgresql\chain.crt. Außerdem wird SSL Compression aktiviert, indem man den Haken setzt.