JDBC SQLServerException: "このドライバは統合認証用に設定されていません。"
-
09-09-2020 - |
質問
SmartFoxServer (SFS)のための「サーバーサイド拡張」を書いています。ログインスクリプトでは、MS SQL Serverへの接続を行う必要があります。これは、JDBCを使用して実行しようとしています。Debug環境でJDBCコードをテストし、大丈夫です。
しかし
SFSの「拡張」フォルダにサーバーサイドの拡張子を置くと(スペックに従って)、com.microsoft.sqlserver.jdbc.SQLServerException
が発生しました:
「このドライバは統合認証用に設定されていません。」。
このエラーのためにグーグルして、通常はファイルsqljdbc_auth.dll
がシステムパスにないためであることがわかりました。このファイルをシステムパスのフォルダにコピーし、まだ機能しません。
他の提案?
解決
さまざまなプロセッサアーキテクチャ用のSQLJDBC_AUTH.DLLのバージョンが異なります(x86 / x64 / ia64)。 SFSサーバーでどちらを使用していますか?
SFSが実行されているJVMのアーキテクチャと一致するものを選択する必要があります。そのため、64ビットマシンで32ビットのJavaを実行している場合は、x64バージョンではなくx86バージョンが必要です。
私は以前SFSを使用していないので、それがどこにでもログを書き込むかどうかわかりません。そうであれば、これらのログを見てみる価値があるかもしれません。何かが役立つかどうかを確認してください。
編集:C:¥Program Files(x86)とは対照的に、C:¥Program Filesが実行されているため、SFSが64ビットのJavaを使用していることを100%確信できません。 。
他のヒント
Windows認証を使用する場合統合セキュリティ
- Microsoft Site から sqljdbc_6.0.8112.100_enu.exe をダウンロードしてください。
- EXEをインストールする(Zip Pathの指示を読む)
-
コピーSQLJDBC_4.0 / ENU / AUTH / X64 / SQLJDBC_AUTH.DLL~
Java / JRE7 / BIN と
java / jre7 / lib
このYouJがHibernateツールに接続してデータベースをデータツールにプルするには
あなたのJREフォルダに.dllファイル: -
私は同じ問題に直面していて、その後、JREフォルダのオペレーティングシステムに応じてSQLJDBC_AUTH.DLL(x86またはx64)を配置しました。これはあなたがこれを試すことができる私のために働いた。
MicrosoftからJDBCドライバ(Ver 7.2)をダウンロードし、 sqljdbc_auth.dll をc:¥Program Files¥Java¥JRE¥BIN、C:¥Program Files¥Java¥JDK¥binをコピーします。フォルダ。Java 32ビットを実行している場合は、プログラムファイル(x86)フォルダに移動します。
In my case, I did the following to resolve:
Downloaded the Microsoft JDBC Driver 8.2 for SQL Server (zip) (found here - https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15).
Then in the zip file, I went into the following folders:
sqljdbc_8.2 > enu > auth > x64
and the copied "mssql-jdbc_auth-8.2.2.x64.dll" to C:\Program Files\Java\jdk-12.0.1\bin
i had faced same issue for the following windows authentication string
jdbc:sqlserver://host:1433;integratedSecurity=true
the default authenticationScheme=NativeAuthentication, So it might depends on some microsoft dlls. To fix it, the update authenticationScheme as NTLM as below
jdbc:sqlserver://host:1433;authenticationScheme=NTLM;integratedSecurity=true;domain=myDomain
note: username given was without domain