आपको किसी commit
की आवश्यकता नहीं है , चूंकि इन परिचालनों के लिए स्पष्ट डीएमएल संचालन नहीं किया जाता है। और begin..end
. का उपयोग करके प्रत्येक विधि को लागू करने के लिए ब्लॉक की आवश्यकता नहीं है, या तो।
आपकी समस्या Dbms_Network_Acl_Admin.Add_Privilege
को लागू करने की अनिवार्यता के कारण उत्पन्न हुई है विधि के साथ privilege => 'connect'
विकल्प भी। तो आप निम्न का उपयोग कर सकते हैं:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(
acl => 'apex_user.xml',
description => 'access to apex email',
principal => 'DBUSER',
is_grant => TRUE,
privilege => 'connect',
start_date => SYSTIMESTAMP,
end_date =>Null
);
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'apex_user.xml',
principal => 'DBUSER',
is_grant => true,
privilege => 'connect'
);
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'apex_user.xml',
principal => 'DBUSER',
is_grant => true,
privilege => 'resolve'
);
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(
acl => 'apex_user.xml',
host => 'smtp.gmail.com',
lower_port =>587,
upper_port =>587
);
END;
निम्नलिखित क्वेरी के साथ सभी विशेषाधिकार प्राप्त एक्सेस की जांच की जा सकती है ( SYS या सिस्टम स्कीमा के माध्यम से ):
select a.host,p.*
from dba_network_acl_privileges p
join dba_network_acls a on a.aclid = p.aclid
order by a.host, p.principal, p.privilege;