Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

What exactly are Access control Lists and Access Control Entry (ACE) in Oracle DB ?

Peasant81Aug 2 2022 — edited Aug 2 2022

DB version : 19c on RHEL 7.9

I am familiar with ACLs at OS (Linux) layer.
But, I have never worked with ACLs/ACEs in Oracle database layer.

So, I googled about ACL, ACEs, DBMS_NETWORK_ACL_ADMIN. I have 3 questions.

Question1. Are my below assumptions correct ?

An access control list (ACL) is a list of access control entries (ACEs).
An access control entry (ACE) is an XML element (ace) that is an entry in an access control list (ACL).

Well, definition-wise, ACLs enforce extra security by providing a fine-grained security mechanism which defines

  1. which users or roles
    can perform
  2. which operations
  3. on which data.

Question2. Is an access control list (ACL) a list of access control entries to restrict the hosts that are allowed to connect to the Oracle database ?
Or
are ACLs used to control access by DB users to an external network services ?

Question3. On APPEND_HOST_ACE Procedure

19C documentation says the following about APPEND_HOST_ACE Procedure

"This procedure appends an access control entry (ACE) to the access control list (ACL) of a network host. The ACL controls access to the given host from the database and the ACE specifies the privileges granted to or denied from the specified principal."

https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_NETWORK_ACL_ADMIN.html#GUID-2512526D-0B2A-44BF-890D-03B5BBCB8442

I came across the following command in a key script in my shop.

Does the below command add Access Control Entry (ACE) for WMSUSER01 user for some HTTP service running in bvmsprd214.domain.net server ?
Any idea why lower_port and upper_port arguments are NULL ?

BEGIN
 DBMS_NETWORK_ACL_ADMIN.append_host_ace
 (  host      => 'bvmsprd214.domain.net', 
    lower_port => NULL, 
    upper_port => NULL, 
    ace => xs$ace_type
       (
           privilege_list => xs$name_list('HTTP'), 
           principal_name => 'WMSUSER01', 
           principal_type => xs_acl.ptype_db
       )
 );
END;
/
Comments
Post Details
Added on Aug 2 2022
2 comments
3,910 views