При попытке подключиться к 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, показывающий конфигурацию для пользователя:
Настройки безопасности для сервера:
Я попытался изменить строку подключения, как упоминалось в этом сообщении, но это не имело никакого эффекта, поэтому я изменил его обратно.Я попытался изменить его на:
String connectionUrl =
"jdbc:sqlserver://localhost\\MSSQLSERVER:1433;"
+ "database=SQLDB;"
+ "user=USER_TEST;"
+ "password=abc;"
+ "encrypt=false;"
+ "trustServerCertificate=false;"
+ "loginTimeout=30;";
Если вам нужна дополнительная информация, не стесняйтесь спрашивать.