6

Java 経由で SQL Server 2008 に接続しようとしています。

  1. sqljdbc4.jarプロジェクトのライブラリに追加しました。
  2. データベースにアクセスするデータベースには、ユーザー名とパスワードは設定されていません (Windows 認証)。
  3. 1433 ポートはリッスンしていますが、それでも次の例外が発生します。

SQL 例外: com.microsoft.sqlserver.jdbc.SQLServerException: ユーザー '' のログインに失敗しました。ClientConnectionId:085d5df3-ad69-49e1-ba32-b2b990c16a69

関連コード:

public class DataBases 
{

    private  Connection link;
    private  java.sql.Statement  stmt;
    public    ResultSet rs;

    public DataBases() 
    {  
        try 
        {    
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=DB;";
            Connection con = DriverManager.getConnection(connectionUrl);
        } 
        catch (SQLException e) 
        {
            System.out.println("SQL Exception: "+ e.toString());
        }
        catch (ClassNotFoundException cE)
        {
            System.out.println("Class Not Found Exception: "+ cE.toString());
        }
     }
}
4

4 に答える 4

17

Windows 認証が必要な場合は、オプション integratedSecurity=trueを JDBC URLに追加する必要があります。

jdbc:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true

Windowsシステムパスまたはで定義されたディレクトリにも必要ですsqljdbc_auth.dll(32/64ビットに注意してください)java.library.path

詳細については、ドライバーのマニュアルを参照してください: http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated

于 2013-02-18T21:00:44.283 に答える
1

Java から Microsoft SQL サーバーに接続しようとしたときに、同じ問題が発生しました。jTDS通常のドライバーではなく、ドライバーを使用しSQLJdbdcました。

        Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
        String connectionUrl = "jdbc:jtds:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true";
        Connection con = DriverManager.getConnection(connectionUrl);
于 2013-02-18T21:20:45.370 に答える
0

この投稿は私の助けです: jdbc.SQLServerException: Login failed for user for any user

フラグが必要でありintegratedSecurity=true、サーバーのプロパティが実際にセキュリティの下で「Windows 認証モード」に設定されていることを確認してください。

于 2013-02-18T21:03:50.530 に答える