Ergebnis 1 bis 4 von 4

Thema: Mehrere User, Verschiedene Rechte, Eine Datenbank

  1. #1
    halech ist offline Neuer Benutzer
    Registriert seit
    21.02.2011
    Beiträge
    9

    Standard Mehrere User, Verschiedene Rechte, Eine Datenbank

    Lieber pg-forum User,

    Ich stehe zur Zeit vor einem kleinen Problem. Ich habe eine Datenbank in der mehrere User ihre Datensaetze (Ein Datensatz bildet sich in mehrere Tabellen ab) ablegen koennen. Nun meine Fragen:

    1. Wie kann ich sicherstellen, dass nur der User, der den Datensatz angelegt hat diesen auch aendern kann.
    2. Alle anderen User trotzdem Lesezugriff auf alle Datensaetze haben, ausser ein Datensatz ist explizit als private getagged.


    Wichtig ist, dass ich nur die Moeglichkeit habe in Postgres zu arbeiten. Extra Software on the top von Postgres ist nicht erlaubt.

    Habt Ihr da Ideen?

    Gruesse
    Halech

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Ich denke die einzige Möglichkeit die Du hast, is updates nur durch stored functions abzuwickeln. Innerhalb der Funktion prüfst Du dann ob der Benutzer den Datensatz der geänder werden soll auch dem aktuellen Benutzer "gehört" (das setzt natürlich voraus, dass Du den Ersteller des Datensatzes auch gespeichert hast)

    Um den Update der Tabellen "manuell" (also via einem UPDATE statement) zu unterbinden, musst Du für alle Benutzer das UPDATE privileg wegnehmen. Die Funktion die den Update dann macht, wird als angelegt mit dem Besitzer der Tabellen und dem Zusatz "SECURITY DEFINER". Damit läuft die Funktion dann mit den Rechten des Tabellen-Besitzers und kann den UPDATE machen.
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  3. #3
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.467

    Standard

    Zitat Zitat von halech Beitrag anzeigen
    Lieber pg-forum User,

    Ich stehe zur Zeit vor einem kleinen Problem. Ich habe eine Datenbank in der mehrere User ihre Datensaetze (Ein Datensatz bildet sich in mehrere Tabellen ab) ablegen koennen. Nun meine Fragen:

    1. Wie kann ich sicherstellen, dass nur der User, der den Datensatz angelegt hat diesen auch aendern kann.
    2. Alle anderen User trotzdem Lesezugriff auf alle Datensaetze haben, ausser ein Datensatz ist explizit als private getagged.


    Wichtig ist, dass ich nur die Moeglichkeit habe in Postgres zu arbeiten. Extra Software on the top von Postgres ist nicht erlaubt.

    Habt Ihr da Ideen?

    Gruesse
    Halech
    Neben dem, was castorp schon sagte:

    Punkt 2 kannst Du über eine VIEW lösen und auf die Tabelle selber auch lesenden Zugriff sperren. In der VIEW definierst Du, daß private false sein muß, falls current_user nicht paßt.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #4
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    524

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Punkt 2 kannst Du über eine VIEW lösen
    Ah, danke.
    Das hatte ich ganz übersehen.
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

Ähnliche Themen

  1. write Rechte für den postgres user (windows)
    Von Alaron im Forum Benutzer- & Rechteverwaltung
    Antworten: 2
    Letzter Beitrag: 05.08.2011, 10:42
  2. Antworten: 2
    Letzter Beitrag: 10.05.2011, 16:45
  3. Anfängerproblem: User erstellen/Rechte
    Von shitake83 im Forum Benutzer- & Rechteverwaltung
    Antworten: 3
    Letzter Beitrag: 18.11.2010, 17:38
  4. Mehrere User
    Von Vierm im Forum Benutzer- & Rechteverwaltung
    Antworten: 4
    Letzter Beitrag: 21.07.2008, 23:22
  5. Role / Rechte Datenbank -> Zurücksetzen?
    Von CenText im Forum Konfiguration
    Antworten: 4
    Letzter Beitrag: 05.04.2008, 07:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum