updated: | 2024 23. October |
published: | 2023 09. August |
Postgresql
... auf der Konsole einrichten.Der Begriff - Rolle -
Bei der Installation von PostgreSQL wurde die Rolle postgres angelegt. PostgreSQL unterscheidet zwischen Benutzerrollen und Gruppenrollen. Rollen werden verwendet, um Berechtigungen für den Datenbankzugriff zu verwalten, wobei eine Benutzerrolle das Einloggen ermöglicht, eine Gruppenrolle dagegen nicht. In Gruppenrollen werden Benutzerollen zusammengefasst um ihnen Berechtigungen zu erteilen.
Erste Schritte in Linux
Nach der Installation der entsprechenden Packete wird in Linuxsystemen neben der Rolle postgres auch gleichzeitig ein Benutzer postgres eingerichtet. Entsprechend muss man sich einloggen.
# Linux Benutzer anzeigen
cat /etc/passwd | cut -d : -f 1
# ggf. Server starten
sudo systemctl start postgresql
# Einloggen als Benutzer postgres
sudo -i -u postgres
# PostgreSQL-Terminal starten
psql
Ggf. tritt eine Fehlermeldung auf (keine Verbindung mit Server), dann könnte ein Neustart des Servers helfen. Ansonsten, siehe weiter unten.
Nach dem Start des interaktiven PostgreSQL-Terminal mit dem Befehl psql
steht der Eingabeprompt postgres=#
auf der Konsole zur Verfügung.
Der Eingabeprompt zeigt immer die Datenbank mit der man gerade verbunden ist. In diesem Fall mit der Datenbank postgres.
Innerhalb des psql-Terminal können erstmal ein paar Informationen abgefragt werden.
help # das Wichtigste
\conninfo # Verbindungseinstellung anzeigen
\l # Datenbanken auflisten
\du # anzeigen aller Rollen bzw. Nutzer
\dt # Tabellen und Schemata auflisten
\q # beendet psql Terminal
\c DBName # Wechsel zu DBNAME
\dx # Alle Erweiterungen der DB anzeigen
Einloggen in ein privates Netzwerk
Innerhalb eines privaten Netzwerks mit eigens vergebenen privaten IP-Adressen
wird PostgreSQL auf einem Server betrieben. Die einzelnen Clients (PC) bauen eine Verbindung zum PostgreSQL-Server auf.
In der Datei postgresql.conf
des Server wird die IP-Adresse und der Verschlüsselungsmechanismus eingetragen.
listen_addresses = '192.168.56.102' # Server-Adresse
password_encryption = md5
In der Datei pg_hba.conf
werden ebenfalls die entsprechenden Einträge angepaßt.
Diese Datei regelt folgende Punkte:
- Welche Host/Gast, bzw. welches Netzwerk (IP-Addresse) sich anmelden darf.
- Die Zugriffsrechte eines Host/Gast auf eine Datenbank.
- Das Authentifizierungsverfahren der Anmeldung
host DBName Benutzer 192.168.56.0/24 md5
Die Angabe der IP-Adresse erfolgt in der CIDR-Notation. Die folgende Tabelle zeigt ein paar Beispiele.
CIDR-Notation | Anzahl der Adressen | Adressbereich | Beschreibung |
---|---|---|---|
192.168.56.1/32 | 1 | nur 192.168.56.1 | einzelner Host |
192.168.56.0/24 | 254 | 192.168.56.0 - 192.168.56.255 | kleines lokales Netzwerk |
192.168.0.0/16 | 65.534 | 192.168.0.0 - 192.168.255.255 | größeres Netzwerk |
Bei einer Verbindung über das Internet muss die öffentliche IP-Adresse des Client in der Datei eingetragen werden.
host DBName Benutzer 46.111.111.111 scram-sha-256
Dann den PostreSQL-Server neustarten
systemctl restart postgresql
Innerhalb des privaten Netzwerkes kann sich der Client mit folgender Befehlszeile auf dem PostgreSQL-Server einloggen.
psql -d DBName -U Benutzer -h 192.168.56.102
Bei dieser Verbindung wird ein Passwort des Benutzers auf dem PostgreSQL-Server abgefragt und gefordert. Das Passwort für den Benutzer sollte vorher in psql
angelegt werden mit dem SQL-Befehl:
alter user Benutzer PASSWORD 'meinPW';
… oder direkt auf der Kommandoshell mit dem Befehl:
psql -d DBName -U Benutzer -c "alter user Benutzer PASSWORD 'meinPW';"
PostgreSql Terminal - psql
Das PostgreSQL Terminal psql
ist für Linux und Windows verfügbar. Es erlaubt eine Verbindung zu einem PostgreSQL-Server und entsprechenden Datenbankoperationen und -abfragen.
Dafür steht die Kommandoption -c
bzw. --command=
zur Verfügung. Einige Abfragen sind:
"show listen_addresses;" // IP Adresse des Servers
"show config_file;" // zeigt die Position postgresql.conf (Konfigurationsdatei Server)
"show hba_file;" // zeigt die Position pg_hba.conf
"show data_directory;" // zeigt die Position der Datenbank
"show ssl;" // ist SSL für die Datenübertragung an- oder abgeschaltet
"show server_version;" // na was wird das wohl sein
"show all;" // alle Konfigurationsparameter
Verschlüsselte Verbindung mit SSL
Guck’st du hier.
Das sieht irgendwie viel versprechend aus. Ansonsten mal Google fragen mit den Begriffen: postgresql ssl certificate windows
.
Benutzer und DB anlegen und löschen
Innerhalb des interaktive PostgreSQL-Terminal psql
werden Benutzer und Datenbanken durch SQL-Befehle
verwaltet.
Aber auch auf der Shell-Konsole werden Programme zur Benutzer- und Datenbankverwaltung zur Verfügung gestellt.
createuser |
Benutzer anlegen |
dropuser |
Benutzer löschen |
createdb |
Datenbank anlegen |
dropdb |
Datenbank löschen |
Tipp zu Windows
Im Gegensatz zu Linuxsystem gibt es in Windows keinen registierten Benutzer postgres. Sollten auf der DOS-Konsole cmd.exe die deutschen Umlaute nicht richtig dargestellt werden, kann die Zeichensatz-Tabelle codepage geändert werden.
net user # Window registrierte Benutzer anzeigen
Links
hilfe01
hilfe02
hilfe03
postgis Datenbank erzeugen
hilfe05
postgresql-buch.de