use*_*653 2 oracle oracle-11g-r2 database-mail
我有一个需要通过 Oracle 触发器发送电子邮件的应用程序。我知道在 Oracle 11g 中,您必须有一个 ACL 文件才能授予某些模式访问网络的权限。我的计划是为每个需要访问网络的用户创建一个单独的 ACL 文件,然后使用以下查询检查它是否已正确创建:
SELECT * FROM DBA_NETWORK_ACLS;
Run Code Online (Sandbox Code Playgroud)
但是,似乎此查询只返回了一条记录 - 始终是创建的最新 ACL。这是否意味着您只能拥有一个 ACL?如果是这样,大概这意味着在客户端的服务器上安装这个应用程序时,我必须只向他们现有的 ACL 添加权限,而不是尝试创建一个新的?
谢谢!
这些是我正在使用的命令:
--create ACL for USER1
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(ACL => 'testacl1.xml',
DESCRIPTION => 'ACL',
PRINCIPAL => 'USER1',
IS_GRANT => TRUE,
PRIVILEGE => 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL => 'testacl1.xml',
PRINCIPAL => 'USER1',
IS_GRANT => TRUE,
PRIVILEGE => 'resolve');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(ACL => 'testacl1.xml', host => '*');
--create ACL for USER2
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(ACL => 'testacl2.xml',
DESCRIPTION => 'ACL',
PRINCIPAL => 'USER2',
IS_GRANT => TRUE,
PRIVILEGE => 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL => 'testacl2.xml',
PRINCIPAL => 'USER2',
IS_GRANT => TRUE,
PRIVILEGE => 'resolve');
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(ACL => 'testacl2.xml', host => '*');
Run Code Online (Sandbox Code Playgroud)
问题是 testacl2 似乎覆盖了 testacl1。这是否意味着我只能拥有一个 ACL 文件,或者每个主机只能拥有一个 ACL 文件?
检查为外部网络服务创建访问控制列表文档(在参数描述之后查看步骤 2):
只能将一个访问控制列表分配给任何主机、域或 IP 子网,以及 TCP 端口范围(如果已指定)。
你的第二个任务只是取代了第一个。每个主机/域只能有一个 ACL 文件。
归档时间: |
|
查看次数: |
7263 次 |
最近记录: |