Sie befinden sich hier: eisfair / Pack-Eis
News News News

Navigation

Content

Dateianzeige für postgresql14 (3.4.1)

usr/share/doc/postgresql14/postgresql14.txt
Dokumentation des Pakets PostgreSQL 14 Inhalt ------ 1 Allgemein 2 Installation 3 Konfiguration 3.1 Allgemeine Einstellungen 3.2 Zugriffstabelle 3.3 Leistung und Resourcen-Verteilung 3.4 Protokoll-Einstellungen 3.5 Sicherung 4 Das Paketmenue 4.1 PostgreSQL administration 4.2 PostgreSQL tools 4.3 PostgreSQL backup and restore 5 PostgreSQL und Sicherheit 6 Methoden der Benutzerauthentifizierung 6.1 Ident Authentifizierung 6.2 PAM Authentifizierung 7 Sicherung und Wiederherstellung 8 PostgreSQL Administrator 9 PostgreSQL Module 1 Allgemein ----------- PostgreSQL ist ein sehr leistungsfaehiges relationales Datenbanksystem das in seiner Funktionsvielfalt kaum Wuensche offen laesst. Dazu gehoert eine vollstaendige Unterstuetzung von Foreign Keys, Joins, Views, Triggers und Stored Procedures. Es stehen die meisten Datentypen der Standards SQL92 und SQL99 zur Verfuegung sowie auch die Speicherung von Daten in Binary Large Objects (BLOBS). Zur Anbindung von Client-Applikationen sind Programmierschnittstellen fuer eine Vielzahl von Programmiersprachen vorhanden. Darunter C/C++, Java, Perl, Python, Ruby, Tcl und ODBC. Zudem steht das Programm unter einer sehr liberalen Lizenz (BSD), die den Einsatz auch in kommerziellen Applikationen ermoeglicht. PostgreSQL ist mit einer sehr ausfuehrlichen Dokumentation ausgestattet, die auf der Homepage des Projekts zu finden ist. Zu beachten ist dabei, dass die Konfiguration des Datenbankservers auf eisfair ueber die eisfair Konfigurationsschnittstelle erfolgt und nicht, wie im Kapitel "Server Administration" beschrieben, direkt mit den Konfigurationsdateien des Programms gearbeitet werden sollte. Weitere Informationen zu PostgreSQL finden sich auf der offiziellen Web- Seite des Projekts "http://www.postgresql.org" oder in deutscher Sprache unter "http://www.postgresql.de". 2 Installation -------------- Das Installationsskript fuehrt die Installation des Datenbankservers aus, ohne dass weitere Angaben notwendig sind. Zu beachten ist, dass das PostgreSQL-Paket ab der Versio 9.6.5 in versionierter Form angeboten wird. Damit ist gemeint, dass an den Paket- namen zukuenftig die Major- und Minor-Nummer der Paketversion angefuegt wird. So wird aus "postgresql" beispielsweise "postgresql14". Dies hat eine Reihe von Konsequenzen: * Es koennen mehrere Versionen von PostgreSQL parallel auf einem System installiert sein. * Die Uebernahme der Daten aus einer aelteren Version kann und muss manuell durch den Anwender erfolgen. * Ein Hauptversionssprung wird nicht laenger durch den Paketmanager automatisch vorgenommen. Statt dessen entsteht durch die neue Version ein neuer Paketnamen, der manuell installiert werden muss. Korrigierte Versionen innerhalb der selben Versionslinie (z.B. 12.x) werden dagegen automatisch aktualisiert. * Der Anwender kann den Ort frei waehlen, in dem das Datenverzeichnis des Server angelegt werden soll. Bei einer Deinstallation werden diese Daten nicht laenger automatisch geloescht. * Die von PostgreSQL abgeleitete Client-Bibliothek "libpq" wird immer von der neusten Version des Datenbankservers entnommen und nicht ver- sioniert. Die Bibliothek ist zu aelteren Versionen rueckwaerts- kompatibel. Nach der Installation ist das Paketmenue unterhalb des Menuepunktes "Database server administration" zu finden. 3 Konfiguration --------------- Die Konfiguration von PostgreSQL unter eisfair erfolgt ueber den Menuepunkt "Edit configuration" im Paketmenue. Die vorgenommenen Aenderungen werden nach Beenden des Editors automatisch uebernommen. Achtung: Dabei wird der Server neu gestartet und alle Client-Verbindungen getrennt. 3.1 Allgemeine Einstellungen ---------------------------- START_POSTGRESQL14 Wird dieser Wert auf "yes" gestellt, dann wird der PostgreSQL Dienst automatisch beim Start des Rechners mitgestartet. Anderenfalls ist das Starten und Beenden des Dienstes ueber das Paketmenue jederzeit moeglich. Gueltige Werte: "yes", "no" POSTGRESQL14_DATADIR Die Einstellung legt fest, unterhalb welchem Pfad das Verzeichnis an- gelegt werden soll, innerhalb dessen die Daten der Datenbanken abge- legt werden sollen. Stellt die Konfigurationsschicht fest, dass das angegebenen Verzeichnis noch nicht existiert, dann wird es automatisch angelegt und es wird ein neuer Datenbank-Cluster initialisiert. Beispiel: "/var/lib/pgsql14" POSTGRESQL14_ENCODING Hier wird die Zeichenkodierung eingestellt, mit der der oben angegebene Speicherort fuer Datenbanken initialisiert werden soll. Zugleich ist dies die Standardeinstellung fuer neu erzeugte Datenbanken. Zu beachten ist, dass diese Einstellung nur dann wirksam wird, wenn der Speicherort erstmalig initialisiert wird, was normalerweise nur einmalig nach der Installation und der Aktvierung der Konfiguration der Fall ist. Ebenso findet die Initialisierung statt, wenn ein anderer leerer Speicherort (siehe oben) gewaehlt wird. Beispiel: "LATIN9" POSTGRESQL14_NETWORKING Hiermit wird festgelegt, ob der Datenbankdienst ueber das Netzwerk er- reichbar sein soll, oder nicht. Steht der Wert auf "no", kann nur vom lokalen Rechner aus auf die Datenbanken zugegriffen werden, anderenfalls ist dies auch von anderen Rechnern im Netzwerk oder auch aus dem Internet moeglich. Zu beachten ist aber, dass zusaetzlich die Zugriffstabelle (Host access table) bestimmt, welche Verbindungen erlaubt sind und welche nicht. Gueltige Werte: "yes", "no" POSTGRESQL14_CONNECT_PORT Dies ist die Anschlussnummer, ueber die der Datenbankserver ueber das Netzwerk erreichbar ist, sobald POSTGRESQL14_NETWORKING dies zulaesst. Die Nummer beeinflusst ebenfalls den Namen der benannten Pipe, ueber die lokal auf den Server zugegriffen werden kann. Bitte unbedingt beachten: Sobald mehrere Versionen von PostgreSQL auf einem Rechner gleichzeitig ausgefuehrt werden sollen, muessen sich diese Server hinsichtlich der Anschlussnummer unterscheiden! Anderen- falls wird mindestens einer der Dienste nicht lauffaehig sein bzw. nicht erreicht werden koennen. Standard: "5432" POSTGRESQL14_CONNECTIONS Hiermit wird definiert, wieviele gleichzeitige Zugriffe auf den Daten- bankserver moeglich sein sollen. Diese Zahl bestimmt den Speicherbedarf des Programms und kann aus oekonomischen Grunden angepasst werden. Dabei ist zu beachten, dass auch der "Autovacuum-Dienst" und die auto- matische Datensicherung jeweils einen eigenen Zugriff erfordern. Standard: "10" 3.2 Zugriffstabelle ------------------- POSTGRESQL14_HOST_N Anzahl der Eintraege in der Zugriffstabelle (Host access table). Ueber die Zugriffstabelle kann vorgegeben werden, wer von wo auf welche Datenbank zugreifen darf und welches Anmeldeverfahren dabei zum Einsatz kommt. Siehe hierzu auch "PostgreSQL und Sicherheit" Beispiel: "2" POSTGRESQL14_HOST_x_TYPE Legt fest, ob hiermit ein lokaler Zugriff ueber einen Unix-Domain-Socket (local) oder ein Netzwerkzugriff ueber TCP/IP (host) beschrieben werden soll. Gueltige Werte: local, host POSTGRESQL14_HOST_x_NETWORK Ist nur dann anzugeben, wenn ein Netzwerkzugriff beschrieben werden soll. Hier wird angegeben, aus welchem Adressbereich (Quelladresse) ein Rechner kommen darf, damit dieser Eintrag fuer ihn zutrifft. Der Adressbereich wird in der kombinierten Schreibweise aus IP-Adresse/ Subnetz angegeben. Beispiel: "192.168.0.0/16" = Alle Adressen 192.168.x.x "192.168.56.3/0" = Nur der Rechner 192.168.56.3 POSTGRESQL14_HOST_x_USERAUTH Hier wird festgelegt, wie sich der Datenbankanwender bzw. das Client- Programm an dem Datenbankserver anzumelden hat. Dazu gibt es eine Reihe unterschiedlicher Verfahren: "trust": Der Client benoetigt kein Kennwort - ihm wird immer vertraut. "reject": Der Client darf sich nicht anmelden. "md5": Der Client tauscht sein Kennwort mit dem Server ueber eine md5 Checksumme aus (empfohlen). "crypt": Der Client schickt sein Kennwort verschluesselt an den Server. "password": Der Client schickt sein Kennwort unverschlusselt. "krb4": Das Kerberos 4 Anmeldeverfahren wird verwendet. "krb5": Das Kerberos 5 Anmeldeverfahren wird verwendet. "ident": Die Anmeldung erfolgt ueber Ident. "pam": Die Anmeldung erfolgt ueber PAM. Siehe hierzu auch "PostgreSQL und Sicherheit" POSTGRESQL14_HOST_x_DATABASE Gibt an, fuer welche Datenbank dieser Eintrag in der Zugriffstabelle gilt. Mit "all" werden alle Datenbanken zugleich angegeben. Beispiel: "all" POSTGRESQL14_HOST_x_USER Gibt an, fuer welchen Datenbankanwender dieser Eintrag in der Zugriffs- tabelle gueltig ist. Mit "all" werden alle bekannten Anwender zugleich angegeben. Beispiel: "all" 3.3 Leistung und Resourcen-Verteilung ------------------------------------- POSTGRESQL14_AUTOVACUUM Mit der Zeit kann es bei Datenbanken zu einer gewissen Fragmentierung kommen, die zum Teil zu spuerbaren Einbruechen in der Leistungsfae- higkeit des Servers fuehren kann. Darum empfiehlt es sich bei PostgreSQL in regelmaessigen Abstaenden das SQL-Kommando "VACUUM FULL" an den Server zu senden. Alternativ dazu kann ein Dienst gestartet werden, der sog. Autovacuum- Dienst, der den Zustand der Datenbank ueberwacht und die Tabellen ggf. selbststaendig optimiert. Gueltige Werte: "yes" "no" POSTGRESQL14_MEMORY_LAYOUT Wie bei den meisten Datenbankservern hat auch bei PostgreSQL die Zu- teilung von Arbeitsspeicher einen grossen Einfluss auf die Arbeits- geschwindigkeit des Dienstes. Zugleich sollte die Zuteilung so er- folgen, dass auch fuer die uebrigen Dienste dieses Systems ausreichend Speicher zur Verfuegung steht. Damit die Konfiguration nicht unnoetig verkompliziert wird, stehen seitens der eisfair-Konfiguration vier verschiedene Speicherprofile zur Verfuegung. Abhaengig vom vorhandenen Arbeitsspeicher kann nach der folgenden Tabelle daraus gewaehlt werden: RAM-Konfiguration small: ... bis 512MB medium: 512MB bis 2GB large: 2GB bis 4GB huge: 4GB bis ... Innerhalb der Serverkonfiguration wird der Speicher anschliessend wie folgt aufgeteilt: shared_buffers temp_buffers work_mem maintenance_work_mem small 16MB 4MB 1MB 8MB medium 128MB 8MB 4MB 64MB large 256MB 16MB 8MB 128MB huge 512MB 32MB 16MB 256MB Beispiel: "medium" POSTGRESQL14_WRITE_MODE Auch die Art und Weise, wie und wann die Daten auf die Festplatte ge- schrieben werden, hat einigen Einfluss auf die Arbeitsgeschwindigkeit des Servers. Der Anwender hat dabei die Wahl innerhalb von vier Stufen einen Kompromiss zwischen einer sehr sicheren, aber langsamen oder einer sehr schnellen, dafuer aber unsicheren Arbeitsweise zu waehlen. Die Sicherheit bezieht sich dabei auf die Konsistenz der Datenbanken im Fall eines ploetzlichen unerwarteten Stromausfalls. secure: sicher aber langsam. normal: im Zweifelsfall die beste Wahl. fast: schnelle Betriebsart. Es koennen jedoch die zuletzt ge- schriebenen Daten verloren gehen. nosync: sehr schnell. Die Datenbanken koennen jedoch korrumpieren. Nur in speziellen Situationen sinnvoll. Innerhalb der Serverkonfiguration werden dabei die folgenden Optionen beeinflusst: fsync synchronous_commit commit_delay secure yes on 0 normal yes on 100 fast yes off 1000 nosync no off 0 Beispiel: "normal" 3.4 Protokoll-Einstellungen --------------------------- POSTGRESQL14_LOG_SETTINGS Wird diese Option auf "yes" gestellt, dann kann mit den folgenden Optionen die Art und Weise beeinflusst werden, wie PostgreSQL Protokoll- ausgaben durchfuehrt. Anderenfalls werden die jeweiligen Standardwerte verwendet. Standard: "no" POSTGRESQL14_CLIENT_LOG_LEVEL Steuert in welcher Detailtiefe Nachrichten an den Client gesendet wer- den. Gueltige Werte sind: DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR, FATAL und PANIC. Jede Detailebene enthaelt alle Ebenen die ihr folgen. Die Werte sind in absteigender Folge dar- gestellt. Je weiter hinten ein Wert ausgewaehlt wird, je weniger Nach- richten werden gesendet. Es ist zudem zu beachten, das LOG hier einen anderen Stellenwert hat, als unter SERVER_LOG_LEVEL. Standard: "notice" POSTGRESQL14_SERVER_LOG_LEVEL Steuert in welcher Detailtiefe Nachrichten in das Server-Logfile ge- schrieben werden. Gueltige Werte sind: DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, NOTICE, WARNING, ERROR, LOG, FATAL und PANIC. Jede Detailebene enthaelt alle Ebenen die ihr folgen. Die Werte sind in absteigender Folge dar- gestellt. Je weiter hinten ein Wert ausgewaehlt wird, je weniger Nach- richten werden geschrieben. Es ist zudem zu beachten, das LOG hier einen anderen Stellenwert hat, als unter CLIENT_LOG_LEVEL. Standard: "notice" POSTGRESQL14_LOG_VERBOSE Steuert ob Eintraege im Server-Logfile ausfuehrlich oder normal erfolgen sollen. Standard: "no" POSTGRESQL14_LOG_STATEMENTS Hiermit koennen SQL-Statements im Server-Logfile mitgeschrieben werden. Standard: "no" 3.5 Sicherung ------------- POSTGRESQL14_BACKUP_TIMER Mit dieser Einsellung kann festgelegt werden, wann (zu welchem Zeit- punkt) eine Datensicherung durchgefuehrt werden soll. Zur Ausfuehrung von Backups zu bestimmten Zeitpunkten, werden systemd Timer verwendet. Systemd-Timer sind sehr flexibel, was sich auch in der Syntax der Zeitangaben wiederspiegelt. Um die Komplexitaet ueber- schaubar zu halten, werden hier lediglich Kalenderereignisse unter- stuetzt. Allgemein wird ein Kalenderereignis gemaes dem nachfolgenden Schema beschrieben: DayOfWeek Year-Month-Day Hour:Minute:Second Fuer Datenfelder innerhalb des Schemas, die nicht beachtet werden sollen, kann der Asterisk als Platzhalter verwendet werden. Werte- bereiche koennen mit zwei Punkten zwischen dem unteren und dem oberen Grenzwert angegeben werden. Eine Reihe von Einzelwerten wird dagegen durch Kommas getrennt. Beispiele gueltiger Eintraege sind: DayOfWeek Year-Month-Day Hour:Minute:Second Mon,Tue *-*-01..04 12:00:00 Sat *-*-1..7 18:00:00 *-*-* 04:00:00 POSTGRESQL14_BACKUP_TARGET Das Verzeichnis, in das die Sicherungsdateien abgelegt werden sollen. Standard: "/var/lib/pgsql_backup" POSTGRESQL14_BACKUP_MOUNT Bevor die Sicherung beginnt, wird das hier angegebene Kommando ausge- fuehrt. Dies kann verwendet werden, um beispielsweise das Sicherungs- medium in das Dateisystem einzubinden. Soll kein Befehl ausgefuehrt werden bleibt das Feld leer. Beispiel: "mount -t udffs /dev/sr0 /mnt" POSTGRESQL14_BACKUP_NOTIFY Wird hier eine e-mail Adresse angegeben, erfolgt im Falle von Fehlern bei der Datensicherung eine Benachrichtigung an den hier angegebenen Empfaenger. Soll keine Benachrichtigung erfolgen bleibt das feld leer. Hinweis: Die Benachrichtigung funktioniert nur dann, wenn das E-mail Paket installiert ist. Beispiel: "dbadmin@localhost" POSTGRESQL14_BACKUP_CLUSTER Hiermit wird vorgegeben, ob im Zuge einer Datensicherung der gesamte Datenbank-Cluster in einem einzigen Sicherungsarchiv ausgelagert werden soll. Neben den einzelnen Datenbanken werden damit unter anderem auch Anwender und Gruppen gesichert. POSTGRESQL14_BACKUP_CLUSTER_USER Name des Datenbankanwenders, der ausreichende Zugriffsrechte fuer die Sicherung des gesamten Datenbank-Clusters besitzt. Da der user "postgres" immer existiert, ist dieser immer eine gute Wahl. Beispiel: "postgres" POSTGRESQL14_BACKUP_CLUSTER_MAX Gibt an, wie viele Kopien der Sicherungsdatei des Datenbank-Clusters aufgehoben werden sollen. POSTGRESQL14_BACKUP_DATABASES Zusaetzlich (oder alternativ) koennen neben der Sicherung des gesamten Datenbank-Clusters auch individuelle Datenbanken in separaten Archiven gesichert werden. Dies bietet den Vorteil, dass diese damit auch einzeln wiederhergestellt oder migriert werden koennen. Diese Option aktiviert die Sicherung von individuellen Datenbanken. POSTGRESQL14_BACKUP_N Anzahl Datenbanken, die gesichert werden sollen. Jede der angegebenen Datenbanken wird in einer Datei mit folgendem Namen abgelegt: --.backup Beispiel: "2" POSTGRESQL14_BACKUP_x_DBNAME Name der Datenbank, die gesichert werden soll. POSTGRESQL14_BACKUP_x_USER Name des Datenbankanwenders, der ausreichende Zugriffsrechte fuer die Sicherung der angegebenen Datenbank hat. Da der user "postgres" immer existiert, ist dieser immer eine gute Wahl. Beispiel: "postgres" POSTGRESQL14_BACKUP_x_MAX Gibt an, wieviele Kopien der Sicherungsdatei der angegebenen Datenbank aufgehoben werden sollen. Beispiel: "7" 4 Das Paketmenue ---------------- 4.1 PostgreSQL administration ----------------------------- * View documentation Dokumentation zum Paket PostgreSQL auf eisfair anzeigen. * Edit configuration Konfiguration des Datenbankservers ueber die eisfair-Konfigurations- ebene bearbeiten. * Advanced configuration file handling Versionsverwaltung der Konfiguration des Datenbankservers. * Start PostgreSQL server Den Datenbankdienst starten. * Stop PostgreSQL server Den Datenbankdienst beenden. * Show status and connects Den aktuellen Status des Servers und die aktiven Client Verbindungen zu diesem anzeigen. * PostgreSQL tools Untermenue: Eine Sammlung von Werkzeugen zur Verwaltung von Datenbanken. 4.2 PostgreSQL tools -------------------- * Database Administrator Start des curses basierten Programms fuer die Verwaltung von Datenbanken, Anmelderollen und Gruppenrollen. Siehe Kapitel 7 fuer weitere Einzelheiten. * Database Administrator (remote) Start des curses basierten Programms fuer die Verwaltung von Datenbanken, Anmelderollen und Gruppenrollen. Siehe Kapitel 7 fuer weitere Einzelheiten. Mit der "remote"-Option ist ein Zugriff ueber das Netzwerk auf entfernte Datenbankserver moeglich. * Backup and restore Untermenue: Hier koennen Datenbanken gesichert und wiederhergestellt werden. * Set local password Hier kann ein Kennwort fuer den loklen Zugriff von administrativen Diensten (z. B. Sicherung, Autovacuum ...) festgelegt werden. * Start SQL interpreter Start eines Programms zur direkten Eingabe von SQL-Befehlen. 4.3 PostgreSQL backup and restore --------------------------------- * Backup database cluster Diese Funktion erlaubt es, alle Daten eines Servers vollstaendig zu sichern. Eine vollstaendige Sicherung schließt auch globale Daten wie Benutzer und Gruppen mit ein. Ein moeglicher Anwendungsfall ist beispielsweise die Migration der Daten eines Servers auf einen neuere PostgreSQL Version. * Restore database cluster Wiederherstellung aller Daten eines Servers aus einer zuvor erstellten Sicherungsdatei. * Backup database Hiermit kann eine einzelne Datenbank in eine Datei im Sicherungsverzeichnis manuell gesichert werden. * Restore database Hier wird die Wiederherstellung einer Datenbank aus einer Sicherung vorge- nommen. * List backup files Auflistung aller Sicherungsdateien im Sicherungsverzeichnis in chronologischer Reihenfolge. 5 PostgreSQL und Sicherheit --------------------------- Um die Installation zu erleichtern, ist die Tabelle fuer den Zugriff auf den Datenbankserver so voreingestellt, dass vom lokalen Rechner aus keine Kennworteingabe erforderlich ist. Fuer den Betrieb im produktiven oder sicherheitskritischen Umfeld ist diese Voreinstellung jedoch nicht geeignet, da jeder Anwender, der sich auf dem Server anmelden darf, als User 'postgres' eine Client-Verbindung zum Server herstellen kann und damit vollen administrativen Zugriff auf die Datenbanken hat. Um diese Sicherheitsluecke zu schliessen sind folgende Schritte auszufuehren: Schritt 1: Kennwort fuer den User 'postgres' festlegen Ueber den SQL-interpreter wird dazu das Kommando ALTER USER... wie folgt abgesetzt, wobei 'password' gegen ein beliebiges Kennwort zu ersetzen ist: template1=# ALTER USER "postgres" WITH PASSWORD 'password'; Der Server bestaetigt den Befehl mit "ALTER USER". Schritt 2: Lokales Kennwort festlegen Damit administrative Dienst, wie die Sicherung oder der Autovacuum-Dienst auch in Zukunft mit dem Server ohne Kennworteingabe kommunizieren koennen, wird das im Schritt 1 angegebene Kennwort im Heimatverzeichnis des Unix-Anwenders "root" gespeichert. Dazu sollte man ungedingt als Anwender "root" oder "eis" an dem Server angemeldet sein. Zum Festlegen des lokalen Kennworts dient der Menuepunkt "Set password for local access". Schritt 3: Zugriff einschraenken In der Konfiguration werden im Abschnitt "Host access table" die Eintraege fuer den lokalen Zugriff von "trust" auf z. B. "md5" gesetzt, wodurch eine Authentifizierung des Clients erzwungen wird. 6 Methoden der Benutzerauthentifizierung ======================================== Die Anmeldung am Datenbankserver kann auf unterschiedliche Art erfolgen. Welche Methode verwendet wird, legt dabei die Zugriffstabelle in der Konfiguration fest. Generell gilt, dass das Anmeldekonto auf dem Server als Login-Rolle existieren muss. Lediglich die Ueberpruefung des Kennworts erfolgt dann auf unterschiedliche Weise. Dabei ist zu unter- scheiden zwischen den Methoden, die das Kennwort des Benutzers gegen das Kennwort der Login-Rolle authentifizieren (md5, password, crypt ...) und den Methoden, die einen externen Passwort-Server dazu verwenden (pam, kerberos). Die empfohlene Methode ist md5, da hier lediglich ein Hash-Wert, nicht aber das Kennwort selbst ausgetauscht wird. Als Kennwort gilt das Kennwort der Login-Rolle. 6.1 Ident Authentifizierung =========================== Bei der Ident-Authetifizierung wird kein Kennwort ueberprueft. Es wird lediglich ein auf dem Client laufender Ident-Daemon angefragt, unter welchem Benutzer- namen die Verbindung initiiert wurde. Dieser User sollte dann auf dem Datenbankserver unter dem gleichen Namen eine entsprechende Login-Rolle besitzen. 6.2 PAM Authentifizierung ========================= PAM ist eine sehr flexible Moeglichkeit der Benutzerauthentifikation, da hier eine zentrale Abstraktionsschicht (die PAM-Konfiguration) festlegt, wie die Authentifizierung erfolgen soll. So kann beispielsweise gegen die lokalen Systemdateien (/etc/passwd, /etc/shadow, /etc/group) ebenso authentifiziert werden, wie ueber einen LDAP-Server. Allerdings ist dazu etwas Handarbeit noetig: Bei der Anmeldung ueber die Systemdateien (/etc/passwd,/etc/shadow,/etc/group) wird unter /etc/pam.d eine Datei mit dem Namen "postgresql" und dem folgen- den Inhalt angelegt: #%PAM-1.0 auth required pam_unix.so account required pam_unix.so session required pam_unix.so Desweiteren benoetigt der Unix-Account "postgres", unter dessen User-ID der Datenbankserver laeuft, einen Lesezugriff auf die Datei /etc/shadow, die normalerweise nur von "root" gelesen weden kann. Die wohl eleganteste Methode dazu ist, eine Gruppe fuer den Lesezugriff einzurichten und den User "postgres" darin aufzunehmen. Dann wird die Gruppenzugehoerigkeit der Datei /etc/shadow geaendert und das Lesebit fuer die Gruppe gesetzt. Beispiel: Gruppe: shadow Mitglied: postgres chown root:shadow /etc/shadow chmod g+r /etc/shadow Quelle: http://itc.musc.edu/wiki/PostgreSQL Hier findet sich auch eine Anleitung fuer LDAP ueber PAM. WICHTIG: Auf eisfair-1 ist ab der Version 1.6.6 des Basissystems die Gruppe shadow bereits eingerichtet und auch die Berechtigungen auf die Datei /etc/shadow sind bereits gesetzt. Es genuegt hier, den User postgres in die Gruppe shadow aufzunehmen. 7 Sicherung und Wiederherstellung ================================= Es kann entwerder manuell ueber das Menue oder automatisch per CRON-Daemon eine Sicherung von Datenbanken vorgenommen werden. Im Falle der manuellen Sicherung wird dazu der Menuepunkt "Backup database" im Untermenue "Post- greSQL Tools" gewaehlt und anschliessend die Datenbank angegeben, die ge- sichert werden soll. Die Sicherungsdatei wird in dem Verzeichnis abgelegt, das in der Konfiguration fuer POSTGRESQL14_BACKUP_TARGET angegeben wurde. Die Standardeinstellung ist '/var/lib/pgsql_backup'. Im Falle der automatischen Sicherung per CRON-Daemon wird in der Paket- konfiguration angegeben, welche Datenbanken zu sichern sind, wieviele Kopien der Sicherungsdatei aufbewahrt werden sollen und wann die Sicherung stattfinden soll. Zudem kann eine E-mail-Adresse angegeben werden, an die im Fehlerfall eine Nachricht verschickt wird. Der Dateinamen wird bei beiden Sicherungsvarianten wie folgt zusammen- gesetzt: --.backup Das ISO-Datumsformat: JJJJ-MM-TT Zeitformat: HHMMSS Beispiele: -rw-r--r-- 1 root root 4309287 Oct 29 00:31 testdb-2005-10-29-003003.backup -rw-r--r-- 1 root root 4309287 Oct 30 00:31 testdb-2005-10-30-003004.backup Zur Wiederherstellung der Daten einer Sicherungsdatei wird zunaechst eine leere Datenbank, sowie alle erforderlichen Datenbankanwender angelegt. Anschliessend kann die Wiederherstellung ueber den Menuepunkt "Restore database" vorgenommen werden. Zuerst erfolgt eine Auswahl einer Datei aus dem unter POSTGRESQL14_BACKUP_TARGET angegebenen Verzeichnis, dann wird als Ziel der Operation die neu angelegte Datenbank ausgewaehlt. Wie ueblich gilt auch hier: Es ist besser nicht blind der Sicherung zu ver- trauen, sondern die Wiederherstellung der Daten auszuprobieren, bevor es zum GAU kommt. 8 PostgreSQL Administrator ========================== Die skriptbasierte Datenbankverwaltung wurde durch ein curses-basiertes Administrationsprogramm ersetzt, welches einfacher zu bedienen und in Zukunft leichter zu erweitern ist. Nach dem Programmstart wird ein Anmeldedialog gezeigt, ueber den man sich am Datenbankserver anmelden kann. Standardmaessig gibt es keine Zugriffsbe- grenzung fuer den lokalen Zugriff (ueber Unix-Sockets), so dass der Dialog einfach mit ENTER bestaetigt werden kann. Gleiches gilt wenn ueber "Set local password" ein Kennwort fuer den jeweiligen Anwender hinterlegt wurde. Das Programm hat ein dreigeteiltes Layout: Auf der linken Seite ist ein Auswahlmenue angebracht, ueber das die einzelnen Programmbereiche erreicht werden. Im rechten oberen Bereich befindet sich die Uebersichtsliste der Datenbankobjekte, die im jeweiligen Programmbereich bearbeitet werden. Im rechten unteren Bereich ist ein Hilfefenster angebracht, das spezifische Hilfe zum jeweiligen Programmbereich enthaelt. Der Eingabefocus laesst sich mit der TAB-Taste im gesamten Programm ver- schieben und die im jeweiligen Programmbereich aktiven Funktionen sind ueber Funktionstasten direkt zu erreichen. Siehe dazu auch die Hinweise in der Statusleiste des Programms am unteren Rand. Damit das Programm auch ohne Funktionstasten zu bedienen ist, sind alle Funktionen zusaetzlich ueber ein Menue erreichbar. Dazu bewegt man den Eingabe- cursor auf die Uebersichtsliste und drueckt dort die ENTER-Taste. Verlassen kann man das Programm ueber die F10 Taste oder mit Hilfe der Menues. 9 PostgreSQL Module (Information fuer Paketentwickler) ===================================================== Um fuer zukuenftige Erweiterungen offen zu sein, sieht PostgreSQL in seiner Menuestruktur eine Schnittstelle vor, die von Erweiterungspaketen verwendet werden kann. Dazu muss lediglich im Menueverzeichnis unter "/var/install/menu" eine Datei abgelegt werden, die der folgenden Namenskonvention entspricht: setup.services.postgresql.modules..menu Diese Datei wird beim Oeffnen dynamisch in das Modulmenue eingebunden. Dazu sollten aber in der Menuedatei unbedingt die Tags und definiert sein. Der Vorteil der dynamischen Bindung ist, dass Erweiterungsmodule zur Lauf- zeit ermittelt werden und bei einem Update des Datenbankservers nicht mehr verloren gehen koennen. In Zukunft wird es weitere Schnittstellen geben, die z. B. Erweiterungen zum PostgreSQL Administrator anbieten. Da hier jedoch die Anforderungen noch nicht bekannt sind, werden diese Schnittstellen erst bei Bedarf implementiert. </div> </div> </div> </div> <div id='footer'> <a href='mailto:team@eisfair.org'> © eisfair-Team 2024 </a></div> </div> </div> </div> </body> </html>