2013-02-18 14 views
7

से कनेक्ट करने के लिए SQLException "लॉग इन उपयोगकर्ता के लिए विफल" प्राप्त करना मैं जावा के माध्यम से SQL Server 2008 से कनेक्ट करने का प्रयास कर रहा हूं।SQL सर्वर 2008

  1. मैंने अपनी परियोजना की लाइब्रेरी में sqljdbc4.jar जोड़ा है।
  2. डेटाबेस (विंडोज प्रमाणीकरण) तक पहुंचने वाले डेटाबेस के लिए कोई उपयोगकर्ता नाम और पासवर्ड सेट नहीं है।
  3. 1433 पोर्ट सुन रहा है, लेकिन मैं अभी भी इस अपवाद प्राप्त करते हैं:

एसक्यूएल अपवाद: 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()); 
     } 
    } 
} 

उत्तर

15

आप विंडोज प्रमाणीकरण चाहते हैं तो आप अपने JDBC- यूआरएल के लिए विकल्प integratedSecurity=true जोड़ने की जरूरत:

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

आपको अपने विंडोज सिस्टम पथ में sqljdbc_auth.dll (32/64 बिट से सावधान रहना) की आवश्यकता है या java.library.path

के माध्यम से परिभाषित निर्देशिका में

जानकारी के लिए ड्राइवर की पुस्तिका देखें: http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated

+0

'sqljdbc_auth.dll' कहां डाउनलोड करें, [यह उत्तर] देखें (http://stackoverflow.com/a/19116116/2646526)। – heenenee

0

यह मेरी मदद की पोस्ट: jdbc.SQLServerException: Login failed for user for any user

आप integratedSecurity=true ध्वज की जरूरत है और सुनिश्चित करें कि सर्वर गुण वास्तव में 'विंडोज प्रमाणीकरण मोड' सुरक्षा के अंतर्गत करने के लिए सेट कर रहे हैं।

1

जब मैं जावा से माइक्रोसॉफ्ट एसक्यूएल सर्वर से कनेक्ट करने का प्रयास करता था तो मुझे एक ही समस्या थी। मैंने नियमित SQLJdbdc ड्राइवर के बजाय jTDS ड्राइवर का उपयोग किया।

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

मुझे एक ही समस्या थी। यह कनेक्शन यूआरएल के गलत प्रारूप की वजह से है। आप कनेक्शन यूआरएल में उपयोगकर्ता नाम और पासवर्ड खो रहे हैं।

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

मुझे आशा है कि यह अच्छी तरह से काम करेगा !!!