Ergebnis 1 bis 1 von 1

Thema: Name der aufrufenden Funktion ermitteln

  1. #1
    Serpina ist offline Neuer Benutzer
    Registriert seit
    18.06.2007
    Beiträge
    6

    Standard Name der aufrufenden Funktion ermitteln

    Einen wunderschönen guten Abend,

    ich habe mich in einer "Rechteverwaltung" dermaßen verfranst, dass ich mich jetzt nur noch über Hilfsmittel herauswurschteln kann, dafür brauch ich aber Hilfe. (Nur ein Übungsprojekt, aber mit Deadline in 2 Tagen, also reichen auch nicht so professionelle Lösungen, solang ich da schnell etwas machen kann)

    IST- Zustand:
    Java ruft eine meiner Stored Procedures auf und ist dabei als Postgres bzw. einem vergleichbaren User angemeldet, der alles darf. Der erste Schritt in meiner Funktion ist es, eine Unterfunktion aufzurufen, um 1. zu ermitteln, ob dieser User eine Sessionid liefert, die gültig ist und 2. was dieser User für eine UserGroup hat (alles unabhängig von Datenbankusern oder Session) Anhand der Group setze ich eine Role und ab dann kann er nur noch begrenzt Funktionen aufrufen.

    DENKFEHLER:
    Da der User die Funktion ja schon betreten hat, ist es völlig egal, ob er nach dem Aufruf der Unterfunktion keinen Zugriff mehr hat, denn dann ist es schon zu spät und er führt sie trotzdem aus.

    LÖSUNGSANSÄTZE:
    1. Jede Funktion nach dem Aufruf der Unterfunktion nochmal mit einem IF die Role prüfen lassen
    2. In der Unterfunktion in einer Rechtetabelle nachschauen lassen, ob die Role, die Funktion ausführen darf und sonst eine Exception werfen. DAFÜR brauche ich aber den Namen der äußeren Funktion. Meine Frage ist jetzt, gibt es eine Möglichkeit, den Namen zu ermitteln, oder muss ich einfach beim Aufruf der Unterfunktion den Namen hardcodiert übergeben?
    3. Hat jemand vielleicht spontan noch eine ganz andere Idee, wie das Dilemma zu lösen ist? Kann ich vielleicht Prozeduraufrufe aller erstmal umleiten und die Unterfunktion sozusagen dazwischen schalten? Klingt leider zu schön, um wahr zu sein...

    EDIT: Habe mich für 2. Entschieden und frage mich/euch immernoch, ob es einen Weg gibt, den Namen der Funktion selbst zu ermitteln, damit ich den nicht selbst schreiben muss - nein, das hat nichts mit Faulheit zu tun, da ich den Aufruf ja auch reinschreiben muss, sondern damit, dass ich es möglichst Flexibel halten will, da man bei einem schnellen Ändern des Funktionsnamens schnell den Aufruf vergisst.
    Vielen lieben Dank für eure Ideen
    Pina

    Ich arbeite mit Postgres 8.2 unter Windows und die Java-Version ist 6, wobei ich wenn möglich von dem Aufruf nichts ändern möchte, da das jemand anderes programmiert und der würde mich killen, wenn ich ihm das 2 Tage vor Ende sage
    Geändert von Serpina (19.06.2007 um 20:43 Uhr)

Ähnliche Themen

  1. Frage Funktion - Count jeder Spalte ermitteln
    Von grassu im Forum PL/pgSQL
    Antworten: 7
    Letzter Beitrag: 26.03.2012, 17:50
  2. Frage Menge ermitteln
    Von SIJ im Forum SQL
    Antworten: 2
    Letzter Beitrag: 08.12.2009, 11:30
  3. Wachstum ermitteln
    Von Lenno im Forum SQL
    Antworten: 8
    Letzter Beitrag: 12.10.2007, 22:09
  4. ID Anzahl ermitteln
    Von Darian im Forum Trigger und Funktionen
    Antworten: 6
    Letzter Beitrag: 25.03.2007, 17:21
  5. Jahreszeiot aus Datum ermitteln?
    Von anton im Forum SQL
    Antworten: 1
    Letzter Beitrag: 15.05.2006, 15:24

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