ORA-24247:network access denied by access control list (ACL) 的处理方法

ORA-24247 在11g及以上版本会碰到此问题。这是因为Oracle在安全方面做了升级,导致要对一些系统包的使用前需要先获得授权,而这个授权不是简简单单的通过grant就可以完成的。

下面举例说明问题的解决步骤和思路,需要用到的包为 DBMS_NETWORK_ACL_ADMIN,需要DBA权限去执行:


--首先,如果不存在访问控制文件,那么就创建一个

--如果已经有了,那么就忽略这一步,除非你想有序化进行管理,那么就重新创建一个

begin

DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'Resolve_Access.xml',

description => 'Resolve Access',

principal => 'LMSYS',

is_grant => true,

privilege => 'connect');

end;

--其次,为某个SCHEMA增加访问权限,权限分resolve和connect两种(必须全小写),需要根据具体使用的包来确定

--具体的,is_grant的说明说得很清楚了

/*

Network privilege to be granted or denied - 'connect | resolve' (case sensitive). A database user needs the connect privilege to an external network host computer if he or she is connecting using the UTL_TCP, UTL_HTTP, UTL_SMTP, and UTL_MAIL utility packages. To resolve a host name that was given a host IP address, or the IP address that was given a host name, with the UTL_INADDR package, grant the database user theresolve privilege.

*/

begin

DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl => 'Resolve_Access.xml',

principal => 'SCOTT',

is_grant => true,

privilege => 'resolve');

end;

--由于发邮件时我指定的是IP,而不是hostname,所以第二步就不需要做了。

--第三步,授权从某主机上可以访问。host支持IP或主机名,并支持通配符*,指定主机名时要注意大小写是敏感的。

begin

DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl => 'Resolve_Access.xml',

host => '*');

end;

--最后一步,提交

commit;

https://www.cnblogs.com/ianxu/p/10417833.html

相关推荐
arronKler1 小时前
大数据量高并发的数据库优化
服务器·数据库·oracle
BduL OWED3 小时前
SQL进阶——JOIN操作详解
数据库·sql·oracle
cyber_两只龙宝5 小时前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
NCIN EXPE6 小时前
SQL sever数据导入导出实验
数据库·sql·oracle
xcLeigh6 小时前
KES 数据库存储过程、函数、触发器实战
数据库·oracle·存储过程·触发器·函数
一颗青果9 小时前
数据库事务
数据库·oracle
Maverick069 小时前
Oracle 会话连接查询
数据库·oracle
DROm RAPS10 小时前
保姆级教程 !SQL Server数据库的备份和还原
数据库·oracle
知忆_IS10 小时前
【问题解决】postgresql操作数据库时候,提示有N个会话正在使用数据库的解决方案
数据库·postgresql·oracle
arronKler12 小时前
数据库设计 Step by Step (1)——扬帆启航
数据库·oracle