2014-12-24 3 views
3

Отказ от ответственности: я никогда раньше не использовал SQL-сервер.java.sql.SQLException: Ошибка входа в систему для пользователя 'admin'

Я пытаюсь подключиться к SQL-серверу Express, используя код Java.

public class Test1 { 

    public static void main(String[] args) throws SQLException, ClassNotFoundException { 
     Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
     String url = "jdbc:jtds:sqlserver://localhost:1433/POC;instance=MOHITCH-LAPTOP/SQLEXPRESS"; 
     String user = "admin"; 
     String password = "admin"; 
     Connection conn = DriverManager.getConnection(url, user, password); 
     Statement st = conn.createStatement(); 
      ResultSet rs = st.executeQuery("select * from POC.dbo.poc_table"); 
      while (rs.next()) 
      { 
       System.out.println(rs.getInt(1) + " " + rs.getString(2)); 
      } 
     } 
    } 

И я получаю исключение:

Exception in thread "main" java.sql.SQLException: Login failed for user 'admin'. 
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820) 
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258) 
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:603) 
    at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:352) 
    at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50) 
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:185) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at my.java.Test1.main(Test1.java:16) 

Я также попытался войти в использовании MS SQL Management Server Studio 2014. И я успешно сделал это.

enter image description here

Вот моя структура базы данных:

enter image description here

Любая помощь высоко ценится !!
Thanks

+0

Действительно ли полномочия пользователя 'admin' правильные? –

+0

Не уверен в SQL Server, но в Oracle существует разрешение 'CREATE SESSION', которое требуется, если вы хотите войти в систему. –

+0

@BuhakeSindi Я могу войти в систему с помощью MS SQL Server Management Studio. Только проблема связана с кодом Java, и когда я пробовал этот код java на другом компьютере, он работал, а это значит, что у моей установки может быть проблема, но я не могу это понять. Я использую 64-разрядную машину Windows 7 с 64-битным Java и 64-разрядным SQL-сервером 2008 Express. – EMM

ответ

0

Прежде всего убедитесь, что служба SQL Browser Service запущена - в службах панели управления Windows. Если вы не можете использовать драйвер JTDS, есть официальный драйвер Microsoft - в соответствии с различными критериями он немного медленнее, но это самая полная реализация - вы найдете много проблем с JTDS (что-то не поддерживается или просто не работает и никто не беспокоится об этом, версия 1.3 не работает в JDK6).

Строка соединения, то есть достаточно (экземпляр не требуется для экспресс-версии):

jdbc:jtds:sqlserver://localhost:1433/MyDatabase 

Если вы использовали MS строки подключения драйвера будет:

jdbc:sqlserver://localhost:1433;databaseName=MyDatabase 
6

Я думаю, что вам нужно изменить некоторые конфигурации на вашем сервере.

Следуйте приведенному ниже шагу и надейтесь, что это вам поможет.

1. Open your SQL Server Management Studio. 

2. Database server right click and go to properties. 

3. Choose Security option and check SQL Server and Windows authentication mode. 

4. Enable TCP/IP connection in SQL Configuration Manager. 

5. Restart your SQL server service. 
+0

Герой дня! :) –