0

環境変数に設定されているデータベースのユーザー名とパスワードを取得してデータベースに接続するアプリケーションを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 ユーザーがアプリケーションをデータベースに接続できるようにしたいと考えています。

これが可能かどうか教えてください。

4

1 に答える 1

2

Oracle で OS 認証用のユーザー アカウントを構成する方法については、次のリンクを参照してください

を呼び出して、Java プログラムを実行している現在の OS ユーザーを読み取ることができますSystem.getProperty("user.name")OS_AUTHENT_PREFIXJDBC を介して接続を作成する場合、上記のリンクに示すように、作成したプレフィックスにこの値を追加する必要がある場合があります。

于 2013-09-27T06:46:14.043 に答える