Hibernate を使用して SYSDBA として Oracle データベースに接続する方法は?
2 に答える
なぜこれをしたいのですか?
Hibernate は、意味のある方法でデータベースに関与することなく、データベース アプリケーションを構築するためのツールです。
SYSDBA は、データ ディクショナリの所有者であり、データベース内で最も強力なユーザーである SYS として Oracle データベースに接続するためのプロトコルです。行政の役割です。誰かが SYS として接続する必要がある場合はほとんどなく、そうする必要があるのは DBA だけです。私の経験では、DBA は Hibernate アプリケーションを嫌います。
つまり、Hibernate はデータベースへの一般的で抽象的なアクセスを提供しますが、SYSDBA は特定の実践的なアクセスを要求します。達成したいことが何であれ、Hibernate を介して SYSDBA を使用しようとするよりも良い方法が必要です。
Oracle の JDBC 開発者ガイドに記載されているメソッドは、接続を取得するときに特定のプロパティを渡しています。
Properties props = new Properties()
props.put("username", "sys");
props.put("password", "some_very_secure_and_secret_password");
props.put("internal_logon", "sysdba");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@....", props);
Hibernate が接続方法をカスタマイズできるほど柔軟かどうかはわかりません。
別の方法はsys as sysdba
、接続用のユーザー名 (スペースに注意してください!) を指定するだけです。これがサポートされているソリューションかどうかはわかりませんが、問題なく動作しているようです。