Der Informatik Student

Studieren geht über probieren …
  • Home
  • Der Autor
  • Tag Wolke
  • Viren-Info
  • Datenschutz
  • Kontakt
  • Impressum

Kontrollierte Benutzerzugriffe auf eine Oracle-Datenbank

Erstellt am Montag, 5. Juni 2006 von Joachim Schuler

Heute beschäftigte ich mich mal mit dem Logon-Trigger, weil der mir vor kurzem auch mal über den Weg lief.

Um unkontrollierte Benutzerzugriffe auf eine Oracle-Datenbank , durch bestimmte Benutzer, oder durch bestimmte Rechner, zu unterbinden, kann als wirksame Maßnahme, ein Logon-Trigger auf der Oracle-Datenbank angelegt werden. Somit kann sich der Benutzer auch nicht anmelden, falls er den User und das Passwort weiß. ;-)

Der Logon-Trigger ist ähnlich aufgebaut, wie die Insert-, Update-, Delete-Trigger, die auf einer Tabelle liegen. Allerdings zündet der Logon-Trigger, bei der Anmeldung eines Benutzers an die Datenbank. Hier kann er eine Aktion ausführen, wie zum Beispiel eine Benutzer- oder Rechnernamenüberprüfung. Hierfür liest sich die Stored Procedure des Triggers den Benutzernamen und den Rechnernamen aus der Systemumgebung aus und überprüft diesen gegen einen festen Wert oder einen Tabelleneintrag und schaut, ob die Anmeldung berechtigt ist. Falls diese berechtigt ist, wird der Zugriff auf die Datenbank freigegeben, falls nicht, wird eine Fehlermeldung angezeigt.


CREATE OR REPLACE TRIGGER SYSTEM.checkUserLogon 
AFTER LOGON ON DATABASE 
DECLARE
 rechnername  VARCHAR2(80);    -- Variable für Rechnernamen
 os_username  VARCHAR2(80);    -- Variable für Username
 errormessage  VARCHAR2(1000); -- Error message to be printed
 userException EXCEPTION;      -- Zugriffs-Exception
 
BEGIN
 
 -- Holt die Informationen  aus dem USERENV context
 rechnername  := sys_context('USERENV','TERMINAL');-- Rechner 
 os_username   := sys_context('USERENV','OS_USER');-- User
 -- Zieht nur bei Oracle-User (Schema) = 'SCOTT'
 IF ( user LIKE 'SCOTT%' ) THEN

 -- Zugriff für Benutzer 'fred' auf dem Rechner 'JUPITER'
   IF ( os_username != 'fred' OR rechnername != 'JUPITER') THEN

    RAISE userException ;

   END IF;
END IF;

EXCEPTION

 WHEN userException THEN
  errormessage := 'Sie haben leider keine Berechtigung für ';
  errormessage := errormessage || 'diese Datenbank !';
  RAISE_APPLICATION_ERROR(-20002,errormessage);

 WHEN OTHERS THEN
  errormessage := 'FATAL ERROR - checkUserLogon - Bitte ';
  errormessage := errormessage || 'kontaktieren Sie den Help';
  errormessage := errormessage || 'desk' || CHR(10) || SQLERRM;
  RAISE_APPLICATION_ERROR(-20003, errormessage);

END;
/

Dieses Beispiel sollte auf allen Oracle-Datenbanken ab der Version 9.0 ohne Veränderungen lauffähig sein. Getestet habe ich den Logon-Trigger auf einer Oracle 9i-RDBMS-Datenbank (Version 9.2.0.6).

Achtung:
Bei der Benutzung von Logon Triggern, muß man Vorsicht walten lassen, denn ein fehlerhafter Logon Trigger kann verhindern, dass sich noch ein Benutzer an der Datenbank anmelden kann. Glücklicherweise zünden Logon Trigger nicht für den Benutzer SYS, der dann in dieser Notsituation den Trigger wieder löschen oder anpassen kann.

Weitere Infos zu Logon-Triggern findet Ihr hier:
MuniQSoft – Oracle Logon Trigger

Abgelegt in der Kategorie: Datenbank

Interne Tags: Tags: Datenbank, oracle, Security

Keine Kommentare

Keine Kommentare möglich.

Ihr Kommentar wird gerade übertragen.

Über mich

Profile Näheres zu meiner Person findet Ihr unter Der Autor

Suche

Zahlendreherei

  • 614 Artikel
  • 1,107 Kommentare.

Blog-Verzeichnisse

  • blogoscoop
  • Blog Top Liste - by TopBlogs.de

Meine tägliche Lektüre

  • all-IT
  • Caschys Blog
  • Datenhalter-Blog
  • DimidoBlog
  • dopefreshtightblog
  • EDV – Ende der Vernunft
  • Freeware-Blog
  • Glorf.It-Blog
  • GoogleWatchBlog
  • Prometeo
  • Sebastian Constapel
  • Software-Guide Weblog
  • t3n News
  • Tobbi’s Blog
  • Tuxpost Blog
  • Webtagebu.ch
  • Webthreads

Links

  • Bachelorstudium Wirtschaftsinformatik

Seiten

  • Der Autor
  • Tag Wolke
  • Viren-Info
  • Datenschutz
  • Kontakt
  • Impressum

    Kategorien

    • .Net (23)
    • Allgemein (131)
    • Apple (34)
    • Bücher (44)
    • Business (29)
    • Datenbank (30)
    • Fußball WM (9)
    • Fun (77)
    • Hardware (33)
    • iPhone (3)
    • Java (56)
    • Linux (51)
    • Programme (81)
    • Programmierung (142)
    • Security (26)
    • SOA (12)
    • Suchmaschinen (27)
    • Virtualisierung (11)
    • Web-Themen (46)
    • Webhosting (32)
    • Websites (7)
    • Windows (95)

    Archiv

    • März 2012 (1)
    • Februar 2012 (4)
    • November 2011 (1)
    • Oktober 2011 (4)
    • Mai 2010 (5)
    • April 2010 (2)
    • März 2010 (1)
    • Februar 2010 (1)
    • Januar 2010 (6)
    • Dezember 2009 (4)
    • Oktober 2009 (1)
    • September 2009 (2)
    • August 2009 (7)
    • Juni 2009 (2)
    • Mai 2009 (3)
    • April 2009 (2)
    • März 2009 (2)
    • Februar 2009 (4)
    • Januar 2009 (4)
    • Dezember 2008 (2)
    • November 2008 (1)
    • Oktober 2008 (5)
    • August 2008 (3)
    • Juli 2008 (6)
    • Juni 2008 (6)
    • Mai 2008 (9)
    • April 2008 (9)
    • März 2008 (6)
    • Februar 2008 (5)
    • Januar 2008 (13)
    • Dezember 2007 (11)
    • November 2007 (8)
    • Oktober 2007 (12)
    • September 2007 (10)
    • August 2007 (14)
    • Juli 2007 (13)
    • Juni 2007 (23)
    • Mai 2007 (20)
    • April 2007 (16)
    • März 2007 (13)
    • Februar 2007 (14)
    • Januar 2007 (35)
    • Dezember 2006 (24)
    • November 2006 (26)
    • Oktober 2006 (26)
    • September 2006 (25)
    • August 2006 (24)
    • Juli 2006 (23)
    • Juni 2006 (29)
    • Mai 2006 (24)
    • April 2006 (23)
    • März 2006 (18)
    • Februar 2006 (16)
    • Januar 2006 (28)
    • Dezember 2005 (12)

    Tag-Wolke

    administration Apple barcamp blogsoftware Business Bücher Datenbank ebook eclipse Fun google Hardware iPhone ipod Java knowhow Linux microsoft musik networking netzwerk notebook nürnberg opensource oracle ruby ruby on rails Security server shell SOA software softwareentwicklung suchmaschine tipps und tricks tools ubuntu video Virtualisierung vista web2.0 webanwendung webdesign Windows wordpress

    WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

Copyright © 2021 Der Informatik Student
Blog-Design by Stephen Reinhardt | Modified for Theme Corp