Στο άρθρο αυτό θα μιλήσουμε για το πως μπορούμε να δημιουργήσουμε και να διαχειριστούμε Access Control Lists. Από την έκδοση 11g και μετά για να υπάρχει η δυνατότητα η βάση να επικοινωνεί απευθείας είτε με email server για να στέλνει email, είτε με εξωτερικά sites για να στέλνει και να παίρνει διάφορες πληροφορίες, δημιουργήθηκε μια λίστα πρόσβασης κάτι σαν εσωτερικό firewall. Αν λοιπόν θέλουμε η βάση μας να αποκτήσει επικοινωνία με εξωτερικά sites ή servers απευθείας θα πρέπει να γίνει η κατάλληλη καταχώρηση στην συγκεκριμένη λίστα. Περισσότερες πληροφορίες σχετικά με το πώς κάποιος δημιουργεί και διαχειρίζεται τέτοιου είδους λίστες μπορεί να δει στο ακόλουθο Link.
Στην συνέχεια ακολουθούν οι κατάλληλες εντολές δημιουργία μιας τέτοιας λίστας μαζί με την εντολή εκχώρησης δυνατότητας σύνδεσης στον server link2.athexnet.gr.
SQL>begin
dbms_network_acl_admin.create_acl (
acl => 'utl_mail.xml',
description => 'Allow mail to be send',
principal => 'DB_USER',
is_grant => TRUE,
privilege => 'connect'
);
commit;
end;
SQL>begin
dbms_network_acl_admin.assign_acl(
acl => 'utl_mail.xml',
host => 'link2.athexnet.gr'
);
commit;
end;
Τέλος υπάρχουν τα παρακάτω 4 queries που μας δίνουν την δυνατότητα να δούμε χρήσιμες πληροφορίες σχετικά με τις access control lists της βάσεως και να κάνουμε χρήσιμες ενέργειες που αφορούν τα acls.
Με το παρακάτω query βλέπουμε όλα τα acls που έχουν δημιουργηθεί στην βάση.
SQL>select * from dba_network_acls
Με το ακόλουθο query βλέπουμε σε ποιους χρήστες της βάσης έχει δοθεί πρόσβαση και σε ποια acls.
SQL>select acl,principal,privilege,is_grant from dba_network_acl_privileges;
Έλεγχος αν συγκεκριμένο acl δουλεύει σωστά και επιτρέπει την πρόσβαση εκεί που θέλουμε.
SQL>select dbms_network_acl_admin.check_privilege_aclid (
'9f9b59d32d942527e04016ac15c74bbd', 'cypowner', 'connect')
from dual;
Με την παρακάτω εντολή δίνουμε το δικαίωμα σε κάποιον χρήστη να έχει πρόσβαση σε συγκεκριμένο ACL.
SQL>exec dbms_network_acl_admin.add_privilege(acl => 'utl_ftp_iplink2.xml',
principal => 'DERIVPROD', is_grant => TRUE, privilege => 'connect');
0 σχόλια:
Δημοσίευση σχολίου