2

jdbcを使用してmsq sqlサーバー2005に接続しようとしています.Sqlサーバー2005はローカルシステムにインストールされており、次の方法で試しています.しかし、localhostの代わりにローカルシステムのIPアドレスを書き込むと失敗します.理由。

import java.io.File;
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;
import java.sql.ResultSet;  
import java.sql.Statement;  


public class mssql {  
    public static void main(String[] args) {  
        try {  
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

            Connection connection=DriverManager.getConnection("jdbc:sqlserver://192.168.1.207:1433;databaseName=WindProfiles;integratedSecurity=true;");// If i write localhost instead of 192.168.1.207 then works else shows error
            if(!(connection==null))
            {
                System.out.println("connected");
            }

//            


        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  

エラー

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''. The user is not associated with a trusted SQL Server connection. ClientConnectionId:932514a0-5e3d-4d9c-8080-1e83ec703f9f
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:254)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:84)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2908)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2234)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2220)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1326)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at mssql.main(mssql.java:14)

ローカル システムの代わりに 127.0.0.1 と記述できることはわかっていますが、リモート システムにも接続することを考えています。コマンドプロンプトtelnet 192.168.1.207 1433に書き込むと、接続します.リモートシステムからも接続します. ここに画像の説明を入力

4

2 に答える 2

1

私が知っている MSSQL への統合セキュリティを行う方法がいくつかあります。使用している接続文字列オプションは私にはなじみがありません (Java で有効かもしれませんが、わかりません)。信頼できる接続を使用するために私が知っているオプションは次のとおりです。

Trusted_Connection=True

Integrated Security=SSPI

integratedSecurity=true接続文字列の一部をそれらのいずれかに置き換えてみて、機能するかどうかを確認してください。


編集

このコードで別のキャッチを追加してみてください:

catch (SQLException se) {
      do {
         System.out.println("SQL STATE: " + se.getSQLState());
         System.out.println("ERROR CODE: " + se.getErrorCode());
         System.out.println("MESSAGE: " + se.getMessage());
         System.out.println();
         se = se.getNextException();
      } while (se != null);
   }

ここでも提案に従ってみてください。これは私が見ているものです。

http://msdn.microsoft.com/en-us/library/ms378522.aspx

于 2013-09-24T05:10:31.463 に答える