Ошибка входа пользователя при подключении к серверу MSSQL - PullRequest
0 голосов
/ 03 июля 2018

Попытка подключения к серверу MS SQL из Java с использованием JDBC:

String url = "jdbc:sqlserver://GM\\SQLEXPRESS:1433;databaseName=Northwind";
connServer.dbConnect(url, "sa","sa");

Получено исключение при подключении:

jdbc:sqlserver://GM\SQLEXPRESS:1433;databaseName=AdventureWorks
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'. ClientConnectionId:1157e4ca-ae88-4e41-b60c-d93b808ba990
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:279)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:99)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4346)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at Test.ConnectMSSQLServer.dbConnect(ConnectMSSQLServer.java:19)
    at Test.ConnectMSSQLServer.main(ConnectMSSQLServer.java:48)

Я ожидаю подключения с использованием аутентификации сервера SQL. По этой причине я изменил пароль для пользователя sa на sa. Я могу подключиться к аутентификации SQL-сервера из консоли управления SQL-сервером, используя пользователя sa. Но меня беспокоит только красный крест на пользователе sa:

enter image description here

Почему это там. Это как-то связано с тем, что я не могу подключиться к БД?

UPD

Я создал пользователя tst с паролем tst и сделал сопоставление с БД NorthWind:

enter image description here

Код:

connServer.dbConnect(url, "tst","tst");

Но получил ту же ошибку. Кстати, красные кресты на tst и sa пользователей теперь отсутствуют.

Пытался добавить tst к системным администраторам, но получил ошибку:

enter image description here

1 Ответ

0 голосов
/ 03 июля 2018

Лучшей практикой здесь будет создание определенного пользователя для взаимодействия.

Этот пользователь затем может иметь определенные необходимые разрешения, связанные с ним. Таким образом, администратор базы данных может ограничить доступ к учетным записям, чтобы ограничить любой ущерб, даже если детали подключения каким-либо образом будут скомпрометированы.

Многие администраторы баз данных отключают "SA" как само собой разумеющееся имя. Я делаю это как само собой разумеющееся и советую своим клиентам делать то же самое (большинство игнорируют советы). Дело не в том, чтобы быть параноиком по поводу безопасности, тем более ты достаточно параноидален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...