Ergebnis 1 bis 3 von 3

Thema: Rechte von Stored Procedures

  1. #1
    Sebastian ist offline Neuer Benutzer
    Registriert seit
    08.01.2007
    Beiträge
    3

    Standard Rechte von Stored Procedures

    Hallo,

    mit welchen Benutzerrechten werden eigentlich Funktionen ausgeführt? Ich meine jetzt nicht, mit welchen sie "aufgerufen" werden können, sondern mit welchen sie ablaufen. Denen des aufrufenden Datenbankbenutzers oder allumfassenden Zugriffsrechten? Ich vermute letzteres?
    Angenommen, ein User besitze keine Rechte an einer Relation (kein SELECT, INSERT, UPDATE, ... auf der Tabelle erlaubt). Könnte er dann trotzdem problemlos eine PL/pgSQL Funktion ausführen, die in dieser Relation Datensätze löscht, sofern er die Ausführungsrechte für die "stored procedure" hat? Oder müsste man der Stored Procedure vorher auch mit GRANT oder so Rechte erteilen? D.h. darf eine Funktion grundsätzlich alles, egal, wer sie ausführt?

    Viele Grüße und danke für ein bisschen Aufklärung!
    Sebastian

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Sebastian Beitrag anzeigen
    Hallo,

    mit welchen Benutzerrechten werden eigentlich Funktionen ausgeführt? Ich meine jetzt nicht, mit welchen sie "aufgerufen" werden können, sondern mit welchen sie ablaufen. Denen des aufrufenden Datenbankbenutzers oder allumfassenden Zugriffsrechten? Ich vermute letzteres?
    Angenommen, ein User besitze keine Rechte an einer Relation (kein SELECT, INSERT, UPDATE, ... auf der Tabelle erlaubt). Könnte er dann trotzdem problemlos eine PL/pgSQL Funktion ausführen, die in dieser Relation Datensätze löscht, sofern er die Ausführungsrechte für die "stored procedure" hat? Oder müsste man der Stored Procedure vorher auch mit GRANT oder so Rechte erteilen? D.h. darf eine Funktion grundsätzlich alles, egal, wer sie ausführt?

    Viele Grüße und danke für ein bisschen Aufklärung!
    Sebastian
    Das kannst Du festlegen, entweder SECURITY DEFINER oder INVOKER.

    Doku lesen!

    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

  3. #3
    Sebastian ist offline Neuer Benutzer
    Registriert seit
    08.01.2007
    Beiträge
    3

    Idee Gelöst

    Ahh, vielen Dank für den Tipp! Genau das meinte ich.
    Habe ich wohl übersehen.

    Für alle anderen, die noch mal nach dem Thema suchen:
    Code:
    [EXTERNAL] SECURITY INVOKER
    [EXTERNAL] SECURITY DEFINER
    SECURITY INVOKER gibt an, dass die Funktion mit den Privilegien des Benutzers, der sie aufruft, ausgeführt werden soll. (Das ist die Voreinstellung.) SECURITY DEFINER gibt an, dass die Funktion mit den Privilegien des Benutzers, der sie erzeugt hat, aufgerufen werden soll.
    Quelle: CREATE FUNCTION

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 23.03.2012, 11:44
  2. Antworten: 2
    Letzter Beitrag: 29.06.2010, 14:50
  3. PHP & Stored Procedures
    Von damike im Forum Programmierung
    Antworten: 5
    Letzter Beitrag: 19.02.2008, 18:31
  4. funktion/stored procedures
    Von rene.hankel im Forum SQL
    Antworten: 2
    Letzter Beitrag: 07.05.2006, 02:14
  5. Antworten: 2
    Letzter Beitrag: 23.01.2006, 18:02

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