Re: Nutzungs- und Schreibrechte

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "Peter Jordan *EXTERN*" <usernetwork(at)gmx(dot)info>, <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: Nutzungs- und Schreibrechte
Date: 2009-07-30 08:32:18
Message-ID: D960CB61B694CF459DCFB4B0128514C203937E8C@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Ergänzend zu dem, was Andreas Kretschmer gesagt hat:

Peter Jordan schrieb:
> ich habe mir einen postgresql 8.3 Server (debian lenny) installiert.
>
> Nun ist es so, dass jeder Nutzer überall Tabellen anlegen, lesen und
> löschen kann.

Das liegt wahrscheinlich an den Rechten auf das Schema "public".

Durch
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
(als Superuser/Datenbankbesitzer) entzieht man der Allgemeinheit
das Recht, Objekte im Schema "public" anzulegen.

Um grob auf das Sicherheitskonzept in PostgreSQL einzugehen:

Zuerst einmal muß man sich die Gesamtstruktur vor Augen führen:
Es gibt einen Cluster mit mehreren Datenbanken drinnen.
User sind auf Clusterebene definiert, das heißt sie sind in allen
Datenbanken des Clusters definiert.

Es gibt die pg_hba.conf, die für einen Cluster bestimmt, welche User
auf welche Datenbanken sich wie verbinden können und wie sie
sich authentisieren müssen.

Dort würde ich alles verbieten:
host all all 0.0.0.0/0 reject
in der letzten Zeile.

Dann würde ich, wie Andreas Kretschmer vorgeschlagen hat, wie
gewünscht einzelnen Usern (oder Usergruppen) Zugang erlauben.

Dann gibt es Superuser, die innerhalb aller Datenbanken des Clusters
keinen Beschränkungen unterworfen sind.

Dann gibt es auf jedem Datenbank-Objekt (Datenbank, Schema, Tabelle,
Funktion, View, Sequence, ...) Berechtigungen, mit denen Usern Rechte
zugestabden werden. Das heißt, man definiert am Objekt, wer was damit
tun darf, und nicht am User.

Standardmäßig darf der Besitzer (Erzeuger) eines Objektes alles damit
und alle anderen nichts.
Ausnahme 1: Funktionen darf standardmäßig jeder aufrufen.
Ausnahme 2: Auf das "public"-Schema hat zu Beginn jeder alle Rechte.
Aushahme 3: Standardmäßig hat jeder das Connect-Recht auf eine Datenbank.

Ich hoffe, das bietet einen Startpunkt.

Liebe Grüße,
Laurenz Albe

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Albe Laurenz 2009-07-30 09:12:47 Re: INTERVAL/INTERVAL-Divisionen
Previous Message A. Kretschmer 2009-07-30 07:59:40 Re: INTERVAL/INTERVAL-Divisionen