を経由して別のドメイン上のSQL Serverに接続し、私は別のドメイン上のSQL Serverに接続することができます次のようにSQL Server Management Studioを(SSMS)を使用してWindowsからJDBC
C:\> runas /netonly /user:differentDomainName\aUserName "C:\Program Files (x86 )\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe -S anIpAddress"
どのようにすることができます私はこの接続をJDBC経由で行うのですか?私はMicrosoftのsqljdbc 4.2ドライバでは、次の接続文字列を使用して試してみた:
jdbc:sqlserver://anIpAddress:1433;database=MAIN;user=differentDomainName\\aUserName;password=pass
私は次のエラーが表示されます
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'differentDomainName\aUserName'
これは私が開始する場合、私が受け取る同じエラーですSSMS 2012の「サーバーに接続」ダイアログボックスで、runasを使用せずに別のドメイン名\ aUserNameを入力します。
追加情報:The J Linux上で動作するアプリケーション内でDBC接続が確立されます。したがって、runas
を使用してアプリケーションを実行することは、残念なことにオプションではありません。
別の試み: 私も次の接続文字列でのjTDS 1.3.1を使用しようとしました:aUserNameは、Windows認証のみのために設定されているので
jdbc:jtds:sqlserver://anIpAddress:1433;databaseName=MAIN;domain=differentDomainName;user=aUserName;password=pass
。残念ながら、これは次の例外を生成します。
o.a.tomcat.jdbc.pool.ConnectionPool : Unable to create initial connections of pool.
java.sql.SQLException: I/O Error: DB server closed connection.
許可情報が続き:私は、SQL Server内の任意の構成を含むSQL Serverマシン上で何かを変更することができませんでしだ。 "aUserName"アカウントは、SQL Serverの読み取り専用のWindows認証専用ユーザーに割り当てられます。
私は以前、[この回答](http://stackoverflow.com/a/26465897/2144390)のjTDSと同様のことをしました。おそらく、それはあなたに他のものを試すためのいくつかのアイデアを与えるかもしれません。 –
ありがとうございます。私はSQL Server内の設定を含め、SQL Serverマシン上の何も変更できません。ユーザーは読み取り専用ユーザーとして設定されます。私はあなたの提供したコードスニペット(私の環境のためにIPアドレス、ユーザー名とパスワードで置き換えて)を使ってみましたが、OPに記載されているのと同じSQL例外を受け取ります。 – James
これを参照してください[SO投稿](http:// stackoverflow。com/questions/14945075/receiving-sqlexception-login-failed-for-user-connecting-to-sql-server-2008)を使用してWindows認証と必要な.jar/.dllファイルを記述します。また、(接続文字列ではなく)引数としてユーザー名とパスワードを渡すことを検討してください: 'DriverManager.getConnection(connectionStr、user、password)'。 – Parfait