Πώς φτιάχνουμε Logon Trigger για να ελέγχουμε τους χρήστες που επιτρέπουμε να συνδεθούν σε Oracle Database

Τελευταίες δημοσιεύσεις από Stratos Matzouranis (Προβολή όλων)
- Πώς να γυρίσουμε μία Oracle Database πίσω στον χρόνο με χρήση restore point σε περιβάλλον Data Guard - 28 Απρίλιος 2025
- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
Πολλές φορές μπορεί για λόγους ασφαλείας να θέλουμε να συνδέονται συγκεκριμένοι χρήστες μόνο από συγκεκριμένα μηχανήματα – servers και σε περίπτωση που έρθει μία σύνδεση απο διαφορετικό μηχάνημα να μην επιτρέπει την πρόσβαση αλλά να εμφανίσει ένα μήνυμα απόρριψης.
Αυτό μπορούμε να το κάνουμε πολύ εύκολα σε βάση δεδομένων της Oracle με την δημιουργία ενός Logon Trigger τρέχωντας τον παρακάτω κώδικα. Το μόνο που χρειάζεται να αλλαχτεί ειναι το όνομα του χρήστη και των host που θέλουμε να επιτρέψουμε να συνδέονται:
CREATE OR REPLACE TRIGGER logon_trigger AFTER LOGON ON DATABASE BEGIN IF USER = 'STRATOS' AND SYS_CONTEXT('USERENV', 'HOST') not in ('oracledev1','oracledev2') THEN RAISE_APPLICATION_ERROR(-20001, 'You are not allowed to login from this host.'); END IF; END; /
Όταν πάει πλέον να συνδεθεί κάποιος απο κάποιο host εκτός απο τα δύο αυτά που εξαιρέσαμε θα τους εμφανίσει το παρακάτω μήνυμα:

Για να το απενεργοποιήσουμε τρέχουμε το παρακάτω:
alter trigger logon_trigger disable;