Στο άρθρο αυτό θα μιλήσουμε για το πωσ μπορεί μια βάση δεδομένων oracle να ρυθμιστεί σωστά ώστε να μπορεί να στείλει email. Για να μπορέσει μια βάση να στείλει email θα πρέπει να εγκαταστήσουμε το πακέτο UTL_MAIL και να ορίσουμε κατάλληλα την παράμετρο SMTP_OUT_SERVER. Για να εγκαταστήσουμε το UTL_MAIL πρέπει να τρέξουμε με έναν ισχυρό λογαριασμό τα παρακάτω μέσω sqlplus.
SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvtmail.plb
Στην συνέχεια θα πρέπει να ορίσουμε την παράμετρο SMTP_OUT_SERVER στο παραμετρικό αρχείο εκκίνησης της βάσης (pfile). Για να το κάνουμε αυτό εκτελούμε την παρακάτω εντολή.
SQL> alter system set smtp_out_server = 'mail.helex.gr:25' scope=both;
(Δυναμική παράμετρος – Αλλάζει χωρίς να χρειαστεί να κατέβει η βάση)
Δίνουμε το δικαίωμα να εκτελεί το συγκεκριμένο πακέτο είτε ο χρήστης PUBLIC οπότε όλοι οι χρήστες της βάσης, είτε συγκεκριμένοι χρήστες που θέλουμε. Οι παρακάτω εντολές εκτελούνται από χρήστη με ισχυρά δικαιώματα στην βάση (DBA δικαιώματα).
SQL> grant execute on utl_mail to <user>;
Τέλος, θα πρέπει να δημιουργηθεί ένα ACL για τον email server και να επιδοθούν τα απαραίτητα δικαιώματα στους χρήστες που θέλουμε να μπορούν να στείλουν email. Χωρίς την δημιουργία ACL θα εμφανίζεται το παρακάτω error: “ORA-24247: network access denied by access control list (ACL)“.
SQL> BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'utl_mail.xml',
description => 'Permissions to access e-mail server.',
principal => 'SCHEMA_NAME',
is_grant => TRUE,
privilege => 'connect');
COMMIT;
END;
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'utl_mail.xml',
host => 'mailrelay.helex.gr',
lower_port => 25,
upper_port => 25);
COMMIT;
END;
0 σχόλια:
Δημοσίευση σχολίου