Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一旦用户在Unix上以用户身份登录,是否跳过数据库的密码身份验证?_Java_Oracle_Unix_Jdbc - Fatal编程技术网

Java 一旦用户在Unix上以用户身份登录,是否跳过数据库的密码身份验证?

Java 一旦用户在Unix上以用户身份登录,是否跳过数据库的密码身份验证?,java,oracle,unix,jdbc,Java,Oracle,Unix,Jdbc,我已经用Java编写了一些应用程序,它们通过在环境变量中设置数据库的用户名和密码连接到数据库。因此,数据库用户名和密码以明文形式存储在服务器上的文件中 以下是创建连接字符串的代码: if (dataBase.equals("oracle")) { url = "jdbc:oracle:thin:@"; url = url + getParameter("Database IP", "setup.ini"); // ip url = url + ":"

我已经用Java编写了一些应用程序,它们通过在环境变量中设置数据库的用户名和密码连接到数据库。因此,数据库用户名和密码以明文形式存储在服务器上的文件中

以下是创建连接字符串的代码:

if (dataBase.equals("oracle"))
{
    url = "jdbc:oracle:thin:@";
    url = url + getParameter("Database IP", "setup.ini");           // ip
    url = url + ":" + getParameter("Database Port", "setup.ini");   //port
    String envVarValue = System.getenv("DBNAME");

    // Environment variable has value DBNAME = 

    String a[] = envVarValue.split("@");
    url = url + ":" + getParameter("SID", "setup.ini");
    String b[] = a[0].split("/");
    userName = b[0]; //User name
    password = b[1]; //Password
}
现在,我希望我的应用程序能够由Unix用户连接到数据库,Unix用户将在服务器上运行此应用程序,而无需在代码中获取数据库用户的密码


请告诉我这是否可行,如果可行,请告诉我如何实现?

有关如何在Oracle中为操作系统身份验证配置用户帐户的链接:


您可以通过调用
System.getProperty(“user.name”)
读取当前运行java程序的OS用户。当通过JDBC创建连接时,您可能必须将此值附加到您创建的前缀
OS\u AUTHENT\u prefix
,如上面的链接所示。

此应用程序以什么系统用户的身份运行?查看我是否可以在Oracle 10g中使用JDBC精简驱动程序进行OS身份验证?我检查了您发布的链接。这里提到要对t_init1.ora文件进行一些更改。我搜索了一下,在我的服务器上没有找到这样的文件。这个文件是什么,以及如何进行链接中提到的更改?我能够在1.6版的java应用程序上使用上述解决方案实现OS身份验证,我想知道我们能否在1.4版中实现同样的功能?我必须使用ojdbc5.jar而不是classes12.jar来实现这一点。但我在某个地方读到classes12.jar不支持OS身份验证。你能确认一下吗?如果是真的,你能给我一个替代方案吗?