Oracle Apex 文档:在 Oracle Database 12c 中授予连接权限
可在“Oracle Application Express Application Builder 用户指南 -> 管理应用程序安全”下找到
Oracle Database 12c 中已弃用 DBMS_NETWORK_ACL_ADMIN 中的过程 CREATE_ACL、ASSIGN_ACL、ADD_PRIVILEGE 和 CHECK_PRIVILEGE。Oracle 建议改用 APPEND_HOST_ACE。以下示例演示如何为 APEX_050000 数据库用户授予任何主机的连接权限。此示例假定您以指定 SYSDBA 角色的 SYS 身份连接到安装了 Oracle Application Express 的数据库。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '*',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'apex_050000',
principal_type => xs_acl.ptype_db));
END;
/
以下示例演示了如何提供对本地网络资源的较少特权访问。此示例仅允许访问本地主机上的服务器,例如电子邮件和报表服务器。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'localhost',
ace => xs$ace_type(privilege_list => xs$name_list('connect'),
principal_name => 'apex_050000',
principal_type => xs_acl.ptype_db));
END;
/
除此之外,它可能取决于您如何在数据库中配置 apex。您是在 cdb 中使用 apex 并且是链接的 apex 对象(因此:为所有 db 安装一个 apex)还是每个 pdb 使用不同的 apex 安装。我猜这只是单次安装。我的猜测(我不是 DBA)是您必须将其授予根用户。