Ошибка входа пользователя, используя JDBC в Java для подключения к MS SQL Server 2017 - PullRequest
0 голосов
/ 21 апреля 2019

При попытке подключиться к MS SQL Server 2017 (разработчик) с помощью драйвера JDBC в приложении REST Java (JDK 1.8.x) я получаю сообщение об ошибке:

Ошибка входа пользователя 'USER_TEST.ClientConnectionId: 3e6efb24-58cf-4854-a3d7-aa27cd596f20

Я создал пользователя в SQL Server Management Studio (SSMS) и могу убедиться, что он существует.Вот как это было создано:

USE SQLDB

CREATE ROLE TEST
GRANT SELECT, INSERT ON SCHEMA :: [dbo] TO TEST
CREATE LOGIN TEST_LOGIN WITH PASSWORD = 'abc'
CREATE USER USER_TEST FROM LOGIN TEST_LOGIN
ALTER ROLE TEST ADD MEMBER USER_TEST

Чтобы проверить, могу ли я войти в систему, используя следующие учетные данные:

EXECUTE AS USER = 'USER_TEST'
REVERT

После этого я пытаюсь соединиться с этой строкой соединения:

String connectionUrl =
                "jdbc:sqlserver://localhost:1433;"
                        + "database=SQLDB;"
                        + "user=USER_TEST;"
                        + "password=abc;"
                        + "encrypt=false;"
                        + "trustServerCertificate=false;"
                        + "loginTimeout=30;";

Ниже приведен экран из SSMS, показывающий конфигурацию для пользователя: enter image description here

Настройки безопасности для сервера: enter image description here

Я попытался изменить строку подключения, как упоминалось в этом сообщении, но это не имело никакого эффекта, поэтому я изменил его обратно.Я попытался изменить его на:

String connectionUrl =
                "jdbc:sqlserver://localhost\\MSSQLSERVER:1433;"
                        + "database=SQLDB;"
                        + "user=USER_TEST;"
                        + "password=abc;"
                        + "encrypt=false;"
                        + "trustServerCertificate=false;"
                        + "loginTimeout=30;";

Если вам нужна дополнительная информация, не стесняйтесь спрашивать.

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