在使用oracle過(guò)程中,有時(shí)候需要集成JAVA函數(shù)來(lái)發(fā)送socket包(作為異步處理,一般是是通知類的UDP包,可能對(duì)包的安全性有所影響,主要是可能有丟包發(fā)生)。在這里主要是處理發(fā)生udp包的事件。
但在調(diào)用函數(shù)的時(shí)候發(fā)生錯(cuò)誤信息。
ORA-29532: Java call terminated by uncaught
Java exception: java.security.AccessControlException: the
Permission (java.net.SocketPermission localhost:10000
listen,resolve) has not been granted to RADIUS. The PL/SQL to grant
this is dbms_java.grant_permission( 'RADIUS',
'SYS:java.net.SocketPermission', 'localhost:10000',
'listen,resolve' )
ORA-06512: at
"RADIUS.UDP_SEND", line
0
ORA-06512: at
"RADIUS.WEB800CALLBACKITEMLIST_INS",
line 20
ORA-04088: error during execution of trigger
'RADIUS.WEB800CALLBACKITEMLIST_INS'
ORA-06512: at
"RADIUS.SF_CREATE800PHONECALLBACKNEW",
line 25
ORA-06512: at line 1
堅(jiān)決辦法是將用戶radius權(quán)限提升。
解決辦法:
1.打開 PL/SQL Develop 登陸數(shù)據(jù)庫(kù)使用system管理員賬號(hào)。
2.打開命令窗口
sql>exec
dbms_java.grant_permission( 'RADIUS',
'SYS:java.net.SocketPermission', 'localhost:10000',
'listen,resolve' );
sql>commit;
sql>exec
dbms_java.grant_permission( 'RADIUS',
'SYS:java.net.SocketPermission', '192.168.0.123:8056',
'connect,resolve' );
sql>commit;
sql>exec
dbms_java.grant_permission( 'RADIUS',
'SYS:java.net.SocketPermission', 'localhost:11000',
'listen,resolve' );
sql>commit;
sql>exec
dbms_java.grant_permission( 'RADIUS',
'SYS:java.net.SocketPermission','192.168.0.123:10010','connect,resolve');
sql>commit;
這里要注意接收包的地址和發(fā)送包的地址要進(jìn)行認(rèn)證。
|