2013-02-18 39 views
7

Tôi đang cố gắng kết nối với SQL Server 2008 qua Java.Nhận được SQLException "Đăng nhập không thành công cho người dùng" kết nối với SQL Server 2008

  1. Tôi đã thêm sqljdbc4.jar vào thư viện dự án của mình.
  2. Không có tên người dùng và mật khẩu nào được đặt cho cơ sở dữ liệu truy cập cơ sở dữ liệu (Xác thực Windows).
  3. Các cổng 1433 được nghe, nhưng tôi vẫn nhận được ngoại lệ này:

SQL Ngoại lệ: com.microsoft.sqlserver.jdbc.SQLServerException: Đăng nhập thất bại cho người dùng ''. ClientConnectionId: 085d5df3-ad69-49e1-ba32-b2b990c16a69

đang liên quan:

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()); 
     } 
    } 
} 

Trả lời

15

Nếu bạn muốn cửa sổ xác thực bạn cần phải thêm tùy chọn integratedSecurity=true đến URL JDBC của bạn:

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

Bạn cũng cần sqljdbc_auth.dll (hãy cẩn thận 32/64 bit) trong đường dẫn hệ thống Windows hoặc trong thư mục được xác định qua java.library.path

Để biết chi tiết xem hướng dẫn sử của lái xe: http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated

+0

Để tải xuống 'sqljdbc_auth.dll' ở đâu, hãy xem [câu trả lời này] (http://stackoverflow.com/a/19116116/2646526). – heenenee

1

Tôi gặp sự cố tương tự khi cố gắng kết nối với máy chủ Microsoft SQL từ Java. Tôi đã sử dụng trình điều khiển jTDS thay vì trình điều khiển SQLJdbdc thông thường.

 Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
     String connectionUrl = "jdbc:jtds:sqlserver://localhost:1433;databaseName=DB;integratedSecurity=true"; 
     Connection con = DriverManager.getConnection(connectionUrl); 
0

Tôi gặp vấn đề tương tự. Đó là do định dạng sai của ConnectionUrl. Bạn đang thiếu tên người dùng và mật khẩu trong ConnectionUrl.

String ConnectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=DB","username","password");" 

Tôi hy vọng nó hoạt động tốt !!!

Các vấn đề liên quan