原因:新創建的用戶並未指定ACL權限(訪問控制列表),因此不能直接訪問互聯網
解決方式:
- 1.在sys權限下,查詢是否為當前用戶分配acl權限
select * from dba_network_acl_privileges ;

- 因此,執行以下sql,將系統中已經有的acl分配給當前用戶
begin
dbms_network_acl_admin.add_privilege
(acl => 'utl_http.xml', -- 命名ACL
principal => 'USER', -- 用戶
is_grant => true, -- true表示賦權,false表示取消賦權
privilege => 'connect'); -- 權限限制
end;
- 如果沒有acl文件,則需要創建acl;(慎用:一般直接使用系統自帶的acl文件,直接使用添加acl給用戶)
begin
dbms_network_acl_admin.create_acl
(acl => 'utl_http.xml', -- 命名 ,命名禁止和系統的相同,和系統的相同會把系統數據刪掉,造成acl無法使用
description => 'some word.. ', -- 描述
principal => 'USER', -- 要賦權限的用戶
is_grant => true, -- true表示賦權,false表示取消賦權
privilege => 'connect'); -- 權限限制
end;
begin
dbms_network_acl_admin.unassign_acl
(acl => 'utl_http.xml', -- 命名
host => '*', -- 服務器地址,可以使用*作為通配
lower_port => 1, -- 端口從
upper_port => 10000); -- 端口到
end;
begin
dbms_network_acl_admin.delete_privilege(
'/utl_http.xml', 'PACDBUSER', NULL, 'resolve'
);
end;
begin
dbms_network_acl_admin.drop_acl(
'/utl_http.xml'
);
end;