BEGIN
--create an acl
--創建訪問控制文件(ACL)
dbms_network_acl_admin.create_acl(acl => '/sys/acls/scp_http_request.xml', --文件名稱
description => 'HTTP Access', --描述
principal => 'EECDEV', -- the user name trying to access the network resource
-- 授權或者取消授權賬號,大小寫敏感(用大寫可以,小寫報錯)
is_grant => TRUE, -- 授權還是取消授權
privilege => 'connect', -- 授權或者取消授權的權限列表
start_date => NULL, -- 起始日期 最好寫上起始日期,沒寫權限一會就失效
end_date => NULL); --結束日期 最好寫上起始日期,沒寫權限一會就失效
-- granted with the appropriate privilege
-- 添加訪問權限列表項
dbms_network_acl_admin.add_privilege(acl => '/sys/acls/scp_http_request.xml', -- 剛纔創建的acl名稱
principal => 'EECDEV', -- 授權或取消授權用戶
is_grant => TRUE, -- 授權還是取消授權
privilege => 'connect'); -- 權限列表
-- assign the acl
-- 該段命令意思是允許訪問acl名爲utl_http.xml下授權的用戶,使用oracle網絡訪問包,所允許訪問的目的主機,及其端口範圍。
dbms_network_acl_admin.assign_acl(acl => '/sys/acls/scp_http_request.xml',
host => '172.16.6.237', --UAT 爲172.16.6.158(內網),生產域名 mdmapi.rajax.me(待提供)
-- ip地址或者域名,填寫http://localhost:9000/hello與http://localhost:9000/是會報host無效的
lower_port => 1024, -- 允許訪問的起始端口號
upper_port => 9999); -- 允許訪問的截止端口號
END;
begin
dbms_network_acl_admin.drop_acl('/sys/acls/scp_http_request.xml');
end;
select host, lower_port, upper_port, acl from dba_network_acls d where d.ACL = '/sys/acls/scp_http_request.xml';