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

Re: [OT?] Frage zu postgresql



Frank Störzer, Fri Jul 24 2009 13:19:39 GMT+0200 (CEST) :
> Hallo,
> Am Freitag, 24. Juli 2009 11:57:32 schrieb Peter Jordan:
>>
>> CREATE DATABASE webdev;
>> GRANT ALL PRIVILEGES ON DATABASE webdev TO webdev;
> hier ist der Hinweis, wie dein Problem gelöst werden kann, dazu unten 
> mehr.

Naja ich dachte mit
GRANT ALL PRIVILEGES ON DATABASE webdev TO webdev;

würde ich dem Nutzer webdev alle Rechte für die Datenbank webdev geben.


>> Des Weiteren existiert noch ein Nutzer peter, der Datenbanken
>> erstellen darf und eine Datenbank peterdb erstellt hat.
>>
>> Jetzt kann ich mich aber mit folgendem Befehl in die Datenbank von
>> peter als user webdev einloggen:
>> peter@host: ~$ psql -h localhost -d peterdb -U webdev
>>
>> Hier kann webdev jetzt munter Tabellen erstellen oder löschen.
> So steht das ja auch oben. Du hast oben dem User webdev nur die Rechte 
> innerhalb des DBMS postgresql gegeben bzw. besser gesagt verweigert. 

Das verstehe ich nicht.


Für
> einzelne Datenbanken musst du dies jetzt noch machen.

Ich dache mit dem GRANT hätte ich das für die einzelne Datenbank webdev
gemacht.

>> So war das nicht gedacht. Wo liegt mein Denkfehler? Wie kann ich
>> erreichen, das peter nicht in die Datenbank webdev gelangt und webdev
>> nur in den Datenbanken arbeiten darf, für die ich ihm die Privilegien
>> zugewiesen haben?
> In dem du diese dem User explizit zuweist oder entziehst. Dies machst du 
> mit GRANT und REVOKE. Alternativ gibt es auch Programme, welche dir dies 
> komfortabel ermöglichen. für PHP gibt es phppgadmn. Ein anderes Tool 
> wäre pgadmin3, bei diesem kann man dann explizit die Rechte in den 
> Eigenschaften der Datenbank angeben (Gruppe oder Benutzer). Es gibt noch 
> einige andere Tools, die dir die Administration erleichtern.

Ich mag Programme nicht, wenn ich nicht verstehe was dahinter steckt.
Wenn ich alles selbst eingerichtet habe und verstehe, dann kann ich so
ein tool nutzen.

> 
> Wie unter Linux auch, musst du beide Rechte im Auge haben, die der 
> Gruppe und die des Users. Die meisten Datenbanken, welche frisch 
> erstellt werden sind der Rolle (hier als Gruppe zu sehen) public zu 
> gewiesen. Damit hat jeder User (auch eine Rolle), der auch in der Rolle 
> public ist, einige Rechte.

Wie zeige ich den die Rechte an? Wie finde ich heraus, wer in welcher
Rolle ist?

> 
> Lies am besten ein wenig in der postgresql Dokumentation über die 
> verschiedenen Rechte, die man vergeben kann (CREATE, DELETE, ALTER, 
> SELECT, ...) und passe dies deinen Bedürfnissen an. Weiterhin empfiehlt 
> es sich, das Kapitel über die Rollen in postgresql zu lesen:
> 
> http://www.postgresql.org/docs/

Das werde ich tun.


PJ


Reply to: