ORACLE DBMS_NETWORK_ACL_ADMIN 包詳解

hurp_oracle發表於2016-08-27

When you create access control lists for network connections, you should create one access control list dedicated to a group of common users, for example, users who need access to a particular application that resides on a specific host computer. For ease of administration and for good system performance, do not create too many access control lists. Network hosts accessible to the same group of users should share the same access control list.

簡單點說:Oracle允許使用幾個PL/SQL API(UTL_TCP, UTL_SMTP, UTL_MAIL, UTL_HTTP和 UTL_INADDR)訪問外部網路服務。需要進行許可權授權才可以,比如需要透過oracle傳送郵件。

下面是幾個常用的定義acl的相關方法:

1. 建立訪問控制列表
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl         => '',
                                    description => 'WWW ACL',
                                    principal   => 'HR',  -- 賦予許可權給哪個使用者
                                    is_grant    => true, -- true表示授予許可權 false表示取消許可權
                                    privilege   => 'connect');
 
2.   使用ADD_PRIVILEGE儲存過程將其他的使用者或角色新增到訪問控制列表中,它的引數與CREATE_ACL儲存過程的引數類似,
省略了DESCRIPTION引數,同時增加了POSITION引數,它用於設定優先順序。
  DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl       => '',
                                       principal => 'HR',
                                       is_grant  => true,
                                       privilege => 'resolve');
                                 
 
3.使用ASSIGN_ACL儲存過程給網路分配訪問控制列表
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl  => '',
                                    host => '*.qq.com'); --主機名,域名,ip地址或分配的子網,主機名大小寫敏感,ip地址和域名允許使用萬用字元  
                                   



4.UNASSIGN_ACL儲存過程允許你手動刪除訪問控制列表,它使用的引數與ASSIGN_ACL儲存過程相同,使用NULL引數作為萬用字元。
DBMS_NETWORK_ACL_ADMIN.UNASSIGN_ACL(host => 'www.qq.com');


5.刪除上面的控制列表
DBMS_NETWORK_ACL_ADMIN.drop_acl ( acl => '');

6. 查詢建立的ACL資訊
SELECT host, lower_port, upper_port, acl,
     DECODE(
         DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, 'HR', 'connect'),
            1, 'GRANTED', 0, 'DENIED', NULL) privilege
     FROM dba_network_acls

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-2124095/,如需轉載,請註明出處,否則將追究法律責任。