内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-24247常见安全
网络访问被访问控制列表(ACL)拒绝
Network access denied by access control list (ACL)
错误描述
PL/SQL 程序尝试进行网络调用(UTL_HTTP、UTL_TCP、UTL_SMTP 等),但用户没有目标主机所需的 ACL 权限。
可能原因
- 未为目标主机和端口配置 ACL
- 用户未添加到网络访问的 ACL 中
- ACL 存在但不包含所需权限(connect、resolve)
解决方案
- 1创建 ACL(12c+):BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(host=>'*.example.com', ace=>xs$ace_type(privilege_list=>xs$name_list('connect'), principal_name=>'USERNAME', principal_type=>xs_acl.ptype_db)); END;
- 2验证 ACL:SELECT host, lower_port, upper_port, acl FROM dba_network_acls;
- 3授予 resolve 权限用于 DNS 查找
诊断命令
SELECT host, lower_port, upper_port, acl FROM dba_network_acls;SELECT acl, principal, privilege, is_grant FROM dba_network_acl_privileges;SELECT * FROM dba_host_aces;#security#acl#network#utl-http