こんにちは、user_id、passwd、およびuser_priv(weblogicユーザーの役割)を含むuser_dataという名前のテーブルがあります。私はデータベースuser_dataをweblogic serverにマップする必要があります。weblogicユーザーを作成し、データベースからweblogicサーバーにロールを割り当てる
このテーブルを含むデータソースでsqlAuthenticatorを使用してプロバイダを作成しようとしました。
結果を達成するためにすべてのクエリを変更しました。
は、ユーザーがテーブルからサーバーをWebLogicへ取得すると仮定します。
<wls:sql-get-users-password>SELECT PASSWD FROM USER_DATA where user_id=?</wls:sql-get-users-password>
<wls:sql-user-exists>SELECT USER_ID FROM USER_DATA whre user_id=?</wls:sql-user-exists>
<wls:sql-list-users>SELECT USER_ID FROM USER_DATA whre user_id=?</wls:sql-list-users>
私はsucessfullyそれを保存し、再度、アプリケーションサーバーを再起動します。
サーバーを再起動する前に。 user_dataテーブルにデータを追加して、テーブルからフェッチしているかどうかを確認します。
データを挿入してサーバを再起動しましたが、weblogicサーバのデータを見ることができませんでした。
しかし、weblogicサーバーからデータを削除しようとすると、user_dataからデータが削除されますが、その逆は機能しません。
もう1つのアプローチは、readSqlAuthenticatorを作成して読み取り専用にすることです。それは上記のように述べた3つのステートメントだけを持っています。
しかし、これは、アプリケーション・サーバを起動し、ユーザーとグループをクリックすると
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16268)
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16238)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:7895)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:314)
at weblogic.jdbc.wrapper.PreparedStatement.setString(PreparedStatement.java:914)
Truncated. see log file for complete stacktrace
>
<24 Jan, 2017 1:48:03 PM IST> <Error> <Security> <BEA-000000> <[Security:090759]A SQLException occurred while retrieving password information
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16268)
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16238)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:7895)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:314)
at weblogic.jdbc.wrapper.PreparedStatement.setString(PreparedStatement.java:914)
Truncated. see log file for complete stacktrace
>
<24 Jan, 2017 1:48:03 PM IST> <Error> <Security> <BEA-000000> <[Security:090759]A SQLException occurred while retrieving password information
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16268)
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16238)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:7895)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:314)
at weblogic.jdbc.wrapper.PreparedStatement.setString(PreparedStatement.java:914)
Truncated. see log file for complete stacktrace
>
<24 Jan, 2017 1:48:03 PM IST> <Error> <Security> <BEA-000000> <[Security:090759]A SQLException occurred while retrieving password information
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16268)
at oracle.jdbc.driver.OraclePreparedStatement.setFormOfUseInternal(OraclePreparedStatement.java:16238)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:7895)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setString(OraclePreparedStatementWrapper.java:314)
at weblogic.jdbc.wrapper.PreparedStatement.setString(PreparedStatement.java:914)
Truncated. see log file for complete stacktrace
の例外がスローされます、私はこのために例外
weblogic. security.providers.authentication.DBMSSQLAuthenticatorDelegateException: [Security:090279]Error listing users *
を次れます私は削除するよう提案しました
<wls:sql-get-users-password>SELECT PASSWD FROM USER_DATA</wls:sql-get-users-password>
<wls:sql-user-exists>SELECT USER_ID FROM USER_DATA</wls:sql-user-exists>
<wls:sql-list-users>SELECT USER_ID FROM USER_DATA</wls:sql-list-users>
しかし、これも機能しませんでした。私のデータベースをすべてのユーザーID、パスワード、役割のweblogicサーバーにマップすることができる他の方法はありますか?
私にこれを提案してください。