0

Hibernate と MS SQL Server Express を使用する Java アプリを実行しようとしています。

SQL Server は、ログイン方法として Windows 認証を使用して構成されています。TCP/IP ポート 1433 (デフォルト) も有効にしましたが、引き続き次のエラーが発生します。

...// more output
at test.models.TestHibernate.main(TestHibernate.java:11)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'not required'. ClientConnectionId:de7daf69-2619-4906-b063-459a5b614bdb
...// more output

例外をスローする行:

session.beginTransaction();

hibernate.cfg.xml:

<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://localhost;databaseName=hibernatexml;integratedSecurity=false;</property>
        <property name="connection.username">not required</property>
        <property name="connection.password"/>

他の構成エラーを削除しましたが、これでアイデアがありません。さらに情報が必要な場合はお知らせください

前もって感謝します。

4

2 に答える 2

1

SQL Server は、ログイン方法として Windows 認証を使用して構成されています。jdbc:sqlserver://localhost;databaseName=hibernatexml;integratedSecurity=false;

Java アプリケーションからSQL Server との統合認証を使用する場合は、

  • JDBC URL のintegratedSecurityプロパティを に設定する必要がありますtrue
  • インストールsqljdbc_auth.dll内のの場所は、 JVM 引数に設定する必要があります。例えばMicrosoft SQL Server JDBC Driverjava.library.path

    -Djava.library.path="C:/Program Files/sqljdbc_4.0.2206.100_enu/sqljdbc_4.0/enu/auth/x64/sqljdbc_auth.dll"
    
于 2012-10-29T03:06:53.570 に答える
0

少なくとも Java 1.7 では、DLL のパス全体を java.library.path に入れることはできません。末尾の「/」を付けずに、ディレクトリのみを指定する必要があります。

例: (1) 失敗...

java -cp .;"C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar"
     -Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64\sqljdbc_auth.dl"
     ConnectMSSQLServer

警告: sqljdbc_auth.dll のロードに失敗しました 原因: java.library.path に sqljdbc_auth がありません

com.microsoft.sqlserver.jdbc.SQLServerException: このドライバーは統合認証用に構成されていません。

(2) よし!

java -cp .;"C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar"
     -Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64"
     ConnectMSSQLServer

お役に立てれば、

ホセ。

于 2014-06-26T14:08:45.690 に答える