JDBC驱动程序连接需要什么权限?

时间:2019-09-13 16:34:05

标签: java jdbc java-security

外部代码打包在jar文件中。它包含以下简单代码

 Class.forName("com.teradata.jdbc.TeraDriver");
 Connection con = DriverManager.getConnection(url, user, password); 

此罐子从沙盒运行。

当我实现AllPermission

时效果很好
Permissions permissions = new Permissions(); 
permissions.add(new AllPermission)); 

但是,当我施加限制时会引发错误

Caused by: java.lang.NullPointerException
at com.teradata.tdgss.jtdgss.TdgssConfigApi.GetMechanisms(Unknown Source)

这是我使用的权限列表

Permissions permissions = new Permissions(); 
permissions.add(new FilePermission(filePermission, "read,write,delete")); 
permissions.add(new PropertyPermission("*", "read,write")); 
permissions.add(new SocketPermission("*", "connect,resolve")); 
permissions.add(new NetPermission("setDefaultAuthenticator,requestPasswordAuthentication")); 
permissions.add(new SerializablePermission("enableSubstitution,enableSubclassImplementation")); 
permissions.add(new ReflectPermission("suppressAccessChecks")); 
// what permission is missing for the JDBC to work? 

JDBC驱动程序需要其他什么权限?

1 个答案:

答案 0 :(得分:0)

关于JDBC安全性的Oracle blog,有很多权限可以设置。

SQLPermission可能丢失了,需要弄清楚其他地方。 @Andreas提供了一篇很棒的文章on troubleshooting security