7

Oracle には、Oracle に接続しているプログラムを実行しているオペレーティング システム ユーザーによってデータベース ユーザーを識別できるようにするというこの概念があります。ここを参照してください。

これにより、たとえば UNIX マシンのユーザーとして、次のようなコマンドを実行できます。

sqlplus /

ユーザー名またはパスワードなしで接続する Oracle 10.2 用の Java プログラムを作成しようとしています。URL の明らかな選択:

jdbc:oracle:thin:/@localhost:1521:MYDBSID

動作せず、エラーが発生します (申し訳ありませんが、現在利用可能なエラーはありません)。

私はこれを行う他の多くの形式も試みましたが、うまくいきませんでした。

OS識別方法を使用してJavaプログラムをOracleに接続する方法について何か提案はありますか?

4

8 に答える 8

7

JDBC Thin ドライバーは、オペレーティング システムから必要な情報を収集できない 100% 純粋な Java 実装です。

JDBC OCI ドライバーはこれを行うことができます! を使用jdbc:oracle:oci8:/@MYDBSIDします。そのマシンに Oracle ドライバーをインストールする必要がありますが、これがサーバーの場合は問題ありません (また、シン ドライバーよりも起動が速く、より多くの機能をサポートします)。

于 2008-10-17T06:34:10.667 に答える
1

答えてくれた人に感謝します。OCI ドライバーを使用しました。

ただし、Oracle 11gシンドライバーを介したOSユーザー認証をサポートしていることを示唆するドキュメントを見つけました。

http://www.orindasoft.com/public/Oracle_JDBC_JavaDoc/javadoc1110/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_THIN_VSESSION_OSUSER

これをテストするための 11g セットアップがないため、これが機能するかどうかはわかりません。

于 2008-10-19T20:37:53.677 に答える
1

JDBCシン・ドライバでのOS認証サポートは11gで追加されました(OTNの11.2.0.4からJDBCシン・ドライバをダウンロードできます)。

サーバーで (TCP 経由の) リモート OS 認証を許可する必要があることに注意してください。そうしないと、IPC または BEQ をローカルで使用する sqlplus でのみ機能します。init.ora ファイルに、次を追加します。

REMOTE_OS_AUTHENT = TRUE

次に、ユーザーがクライアント マシンで「osuserdemo」の場合、次のようにデータベース ユーザーを作成し、DB を再起動します。

 CREATE USER OSUSERDEMO IDENTIFIED EXTERNALLY;
 GRANT CONNECT,CREATE SESSION,RESOURCE TO OSUSERDEMO; 

また、JDBC シン ドライバーは、ユーザー名やパスワードなしで接続できる必要があります。

非常に安全でないと考えられているこの機能は、12c ではサポートされていないことに注意してください。

于 2015-06-17T21:44:31.693 に答える
1

Oracle が出荷する jdbc ドライバーには、提供した URL から OS ユーザー名とパスワードを収集する機能がありません。ORACLE 用のサードパーティ JDBC ドライバ プロバイダがあり、そのうちの 1 つが必要な機能を提供しているとします。グーグルで検索する必要があります。

于 2008-10-17T05:44:45.710 に答える
0

J2EE アプリケーションサーバーから Oracle にアクセスしている場合は、JNDI を使用してデータソースを取得することで、同様の目的を達成できます。

于 2008-10-17T06:50:45.857 に答える
0

次の jdbc:oracle:thin:username/password@localhost:1521:MYDBSID を試してください

アカウント情報を指定する必要があります

sqlplus / オペレーティング システム認証を通過する UNIX マシン上の sysdba として

于 2011-12-14T06:04:16.147 に答える
0

11g シン ドライバーは、Kerberos 認証を使用して接続できます。

Kerberos を使用して Oracle データベースに接続するを参照してください。

于 2010-08-04T19:01:43.493 に答える