最近在把1个oracle数据库从9i 32位移植到11g 64位下时遇到多个问题,其中一个就是tcp访问权限的问题,在oracle 9i中,数据库的存储过程访问tcp无需进行权限认真,11g加强了安全性,需要进行授权,.
授权只需要执行1和2即可在存储过程中执行tcp相关的操作了。
1.创建授权文件
BEGIN
DBMS_NETWORK_ACL_ADMIN.create_acl (
acl => 'filename.xml',
description => 'ACL functionality',
principal => 'abcd',
is_grant => TRUE,
privilege => 'connect',
start_date => SYSTIMESTAMP,
end_date => NULL);
END;
2.授权
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'filename.xml',
host => '192.168.0.1', --此处写上需要访问的IP地址
lower_port => 21,
upper_port => 21); --此处为端口
END;
3.
--取消授权
BEGIN
DBMS_NETWORK_ACL_ADMIN.unassign_acl (