[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Woody + Postgresql



* Manfred Rebentisch <MRebentisch@comparat.de> [23 10 02 06:45]:

>bei mir lief es ja auch gut, nur, daß ich mich partout nicht über das Netzwerk 
>als Benutzer anmelden konnte (SQL-Ledger), auch nicht nach manuellem Eintrag 
>der SQL-Ledger-Benutzer mit createuser. 

Beachte, dass PostgreSQL eine etwas komplizierter User-Verwaltung hat
als viele andere Programme. Mit createuser legst du nur einen Benutzer fest, 
das besagt aber nichts darüber, wer überhaupt Kontakt mit welcher 
Datenbank aufnehmen darf.  PostgreSQL hat ein ausgeklügeltes
Benutzersystem, was bei Datenbanken in größeren Organisation notwendig
ist. Umgekehrt ist PostgreSQL auch nicht einfach zu verwalten, sondern
erfordert einiges an Fachwissen. Wenn du bislang nur mit MySQL
gearbeitet hast und nicht die Absicht hast, tiefer einzusteigen, ist
MySQL die bessere Wahl.


PostgreSQL unterscheidet zunächst einmal zwischen Verbindungen über
- Sockets und 
- TCP/IP
Die entsprechenden Details sind in der /etc/pg_hba.conf nachzulesen. 
Bei Verbindungen über TCP/IP gilt das Stichwort "host", bei sockets das
Stichwort "local". local bedeutet nun aber nicht localhost - du kannst
über ein TCP/IP-Netzwerk eine socket-Verbindung aufbauen. 
Des weiteren kannst du in der pg_hba.conf festlegen, von welchen
Rechnern so eine Verbindnug möglich ist, mit/ohne Passwort, zu welcher
Datenbank usw.. Die pg_hba.conf ist gut kommentiert. Das Lesen dieser
Datei ist ein Muss beim ersten Arbeiten mit der Datenbank. 

Wenn alle TCP/IP vom localhost auf die Datenbank "dbname" zulässig sein
sollen, würde folgendes in der pg_hba.conf stehen.
host     dbname    127.0.0.1     255.255.255.255     trust

Wenn der apache auf einem anderen Rechner läuft als postgresql
host     dbname    apache_ip     255.255.255.255     trust

Wenn du da einen Schrott baust und eine entsprechende Netzverbindung
hast, können nicht nur die Nachbarn, sonder auch die Koreaner mit 
deiner Datenbank arbeiten. 

Sodann musst du dir darüber im klaren sein, dass die normalen
Nutzernamen weitgehend belanglos sind, da man immer einen Nutzernamen
angeben kann. Wenn ich z.B. von der Workstation mich mit der Datenbank
auf einem anderen Rechner verbinden will, gebe ich 
psql -h 192.168.1.13  -U username dbname
ein. 

Du musst dir die Datenbank-Nutz so einrichten, wie es sinnvoll ist, ein 
einfaches Beispiel:

"postgres" ist der superuser und sollte nur für die gundlegenden Sachen
zuständig sein, hier weiter uninteressant. 

"admin_1" ist z.B. für Datenbank 1 zuständig und richtet alle Tabellen der
Datenbank_1 ein. Diese Datenbank "gehört" dann dem admin_1. 
"user_1" sind alle anderen, die Lese- und Schreibzugriff im Rahmen der
Tabellen haben. 

Diese Nutzer finden sich in der pg_hba.conf. Sie müssen zusätzlich mit
createuser von einer shell aus (oder CREATE USER bei Nutzung der DB)
angelegt werden.  

Sodann legt der admin_1 die DB und die Tabellen an und gibt dem user_1
die notwendigen Rechte mit "GRANT <Rechte> TO user_1 <weitere Optionen>"

>Jetzt habe ich gelesen, daß man auch 
>einen Datenbank-Benutzer "apache" für Apache einrichten soll, wenn man über 
>diesen zugreifen will.

Bei debian gibt es den user apache nicht - er heißt "www-data",
zumindest in meiner /etc/passwd finde ich diesen user nicht. 

>Jedenfalls habe ich vielleicht beim wütenden 'remove' nicht alles richtig 
>gemacht? Mit dem remove-Befehl wurden die Pakete postgresql und 
>postgresql-contrib entfernt. Die Verzeichnisse /etc/postgresql und 
>/var/lib/postgresql/data habe ich manuell gelöscht. Irgendwo gibt es aber 
>noch Informationen, z.B. ein DB-Backup von postgresql.
>Die Befehle 
>apt-get install postgresql
>apt-get install postgresql-contrib
>führen jedenfalls nicht zu einer vollständigen und funktionierenden 
>Installation.

Tja, das mit dem rm war ein Fehler. Ich würde nochmals alles entfernen
(mit dpkg oder so, nicht mit rm) was mit psql zu zu hat. Die drei
besonderen Verzeichnisse heißen 
/var/lib/postgresql für die DBs
/usr/lib/postgresql für die Programme
/etc/postgresql für die Konfiguration

/var/lib/postgresql schaust du am besten gar nicht an. 

Wie du den Schrott mit dem rm wieder hinkriegst, weiß ich nicht (macht
man halt nicht). 

-- 
Eckhard Höffner
e-hoeffner@fifoost.org
D-80331 München
Tel. +49-89-21 03 18 88 



Reply to: