Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

DBMS_JAVA.GRANT_PERMISSION 'SYS:JAVA.NET.SOCKETPERMISSION' has not been granted

Ajay BethamFeb 26 2018 — edited Mar 5 2018

hi,

I have created and published a Java Stored procedure.

CREATE OR REPLACE PROCEDURE sp_sqljpoc

AS LANGUAGE JAVA

NAME 'SqlJPoc.main(java.lang.String[])';

/

SqlJPoc.main is a Java class that contains logic to connect to 2 remote databases and transfer data from one database to other database using JDBC. I am not using DB link due to security constraints.

When I execute the sp_sqpljpoc from SQL developer using execute sp_sqljpoc; I am getting the below error.

exception the Permission (java.net.SocketPermission <<hostname>> resolve) has not been granted to <<username>>. The PL/SQL to grant this is dbms_java.grant_permission( '<<username>>', 'SYS:java.net.SocketPermission', '<<hostname>>', 'resolve' )

java.security.AccessControlException: the Permission (java.net.SocketPermission <<hostname>> resolve) has not been granted to <<username>>. The PL/SQL to grant this is dbms_java.grant_permission( '<<username>>', 'SYS:java.net.SocketPermission', '<<hostname>>', 'resolve' )

at java.security.AccessControlContext.checkPermission(AccessControlContext.java)

at java.security.AccessController.checkPermission(AccessController.java)

at java.lang.SecurityManager.checkPermission(SecurityManager.java)

at oracle.aurora.rdbms.SecurityManagerImpl.checkPermission(SecurityManagerImpl.java)

at java.lang.SecurityManager.checkConnect(SecurityManager.java)

at java.net.InetAddress.getAllByName0(InetAddress.java:1144)

at java.net.InetAddress.getAllByName(InetAddress.java:1082)

at java.net.InetAddress.getAllByName(InetAddress.java:1018)

at oracle.net.resolver.HostnameNamingAdapter.resolve(HostnameNamingAdapter.java:167)

at oracle.net.resolver.NameResolver.resolveName(NameResolver.java:133)

at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:431)

at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:693)

at oracle.net.ns.NSProtocol.connect(NSProtocol.java:251)

at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)

at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)

at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java)

at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)

at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)

at java.sql.DriverManager.getConnection(DriverManager.java)

at java.sql.DriverManager.getConnection(DriverManager.java:185)

at SqlJPoc.main(SqlJPoc:16)

PL/SQL procedure successfully completed.

I have followed the steps in the below article to provide necessary grants but the issue persists. Please help!

https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=179552650881683&parent=EXTERNAL_SEARCH&sourceId=PROBLEM&…

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 2 2018
Added on Feb 26 2018
12 comments
4,139 views