テナント対応の Web アプリケーションで複数のデータベース タイプをサポートする必要があります。とりわけ、「jdbc:jtds:sqlserver://192.168.1.189:1433/ApplicationName」のような接続文字列を持つ net.sourceforge.jtds.jdbc.Driver クラスを使用して、Microsoft の SQL Server を正常にサポートしました。これは機能しますが、ユーザーが SQL Server インスタンスで明示的にユーザーを定義し、SQL Server 認証を有効にする必要があります。
現在、必然的に要件が変更され、Windows 認証を介した SQL Server への接続をサポートすることになっています。データベースサーバーは、データベース接続に渡された資格情報が SQL Server インストールで定義されたユーザーのものか、Windows OS で定義されたユーザーのものかを何らかの方法で区別できる必要があるため、明らかにこれには接続文字列への何らかの変更が必要です。しかし、それは何ですか?
で接続文字列を拡張するまで進んだ場合は、インターネットからのアドバイスに基づいて行動します;useNTLMv2=true;domain=WORKGROUP
。これにより、Windows ユーザーとして認証したいことをデータベース サーバーに認識させるようですが、実際のログインは失敗します。
The login is from an untrusted domain and cannot be used with Windows authentication. (code 18452, state 28000)
現在、私のテスト セットアップでは、J2EE アプリと SQL サーバー インスタンスの両方が実際には同じマシン上にあり (本番環境ではそうではないかもしれません)、それでもこのコンピューターはそれ自体にログオンするのに十分なほど信頼されていませんか? 明らかに、ここでパズルの大部分を見逃しています。SQL Server インスタンスを開始したユーザーが実際に JDBC 経由でログオンできることを SQL Server インスタンスに納得させるには、どうすればよいでしょうか?
編集
Web アプリケーションを完全な Microsoft インフラストラクチャ スタック (SQL Server、Active Directory、ドメイン ネーム サービスなど) に統合しようとして失敗に終わった努力をすでに沈めているため、この質問を制限する必要があります。
Active Directory、Web アプリケーションを実行している Windows マシン、および独自の DLL を使用せずに、J2EE アプリケーションからJDBC経由で「Windows ユーザー」として定義されたユーザー アカウントでSQL Serverインストールにアクセスする方法を知っている人はいますか? 報奨金は、そのサブ問題の解決策に対するものです。1 つのフォーラム投稿で回答するには、問題全体が広範すぎることは明らかです。