Проверка подлинности Windows, не работает доверенное соединение
Сервер MSSQL находится в домене abc и имеет аутентификацию в смешанном режиме. Я подключаюсь с компьютера, который не находится в домене или домене "xyz", но в той же сети, используя драйвер MSSQL Jdbc 2.0. Я вошел в систему как администратор или учетная запись в домене XYZ.
Он работает нормально, используя следующий URL для соединения для "sa" или аутентификации в режиме SQL.
JDBC: SQL Server://%DB_IP%:%DB_PORT%;SelectMethod= курсор; имя_базы_данный = имя_бд
Это не работает для проверки подлинности окна с использованием учетных данных "MSSQLDomain\username"
т.е. "abc\username"
, используя следующий URL
JDBC: SQL Server://%DB_IP%:%DB_PORT%;SelectMethod= курсор, integratedSecurity= истина;DatabaseName= имя_бд;
Выдает следующую ошибку. Не удалось войти в систему для пользователя ''. Пользователь не связан с доверенным соединением SQL Server.
Я попытался добавить свойство Trusted_Connection=Yes к URL, но все равно выдает ту же ошибку. Я не хочу сопоставлять диск SQL Server. Я могу получить доступ к любой общей папке на компьютере с SQL Server, указав "MSSQLDomain\username" и пароль.
Он отлично работает для обоих режимов аутентификации, если оба компьютера находятся в одном домене. Если я использую драйвер jtDS с компьютера, который не находится в домене или в домене "xyz" в той же сети, т.е. в той же подсети, он работает нормально.
3 ответа
Может помочь изменение учетных данных, используйте аутентификацию SQL вместо аутентификации nt
https://support.microsoft.com/en-us/kb/555332
симптомы
После установки Microsoft SQL Server 2014, SQL Server 2012, SQL Server 2008, SQL Server 2005 или SQL Server 2000 и попытки подключения к серверу, на котором выполняется SQL Server, вы получаете одно из следующих сообщений об ошибке:
Ошибка входа для пользователя "%.* Ls". Имя входа является именем входа SQL Server и не может использоваться с проверкой подлинности Windows.%.* Ls
Не удалось войти в систему для пользователя ''. Пользователь не связан с доверенным соединением SQL Server. (Microsoft SQL Server, ошибка: 18452)
Не удалось войти в систему для пользователя ''. (Microsoft SQL Server, ошибка: 18456)
разрешение
Эта проблема возникает, если пользователь пытается войти с учетными данными, которые не могут быть проверены. Эта проблема может возникнуть в следующих случаях:
Сценарий 1:
Имя входа может быть именем входа SQL Server, но сервер принимает только проверку подлинности Windows.
Чтобы решить эту проблему, настройте SQL Server в режиме смешанной аутентификации.
Сценарий 2:
Вы пытаетесь подключиться с использованием аутентификации SQL Server, но используемый логин не существует на SQL Server
Чтобы решить эту проблему, убедитесь, что имя входа SQL Server существует. Дополнительные сведения см. В разделе "Создание имени входа в электронной документации по SQL Server".
Сценарий 3:
При входе в систему может использоваться проверка подлинности Windows, но вход в систему является нераспознанным участником Windows.
Нераспознанный участник Windows означает, что Windows не может подтвердить вход в систему. Это может быть связано с тем, что вход в Windows происходит из ненадежного домена. Чтобы решить эту проблему, убедитесь, что вы вошли в правильный домен.
Это намеренное и правильное поведение проверки подлинности Windows.
Это связано с тем, что домен, из которого вы подключаетесь, не совпадает с доменом Windows, в котором находится ваш экземпляр SQL Server.
Я полагаю, что существуют методы, позволяющие соединить Домены, так что они требуют нестандартной и сложной реализации. Вам также придется настроить доверительные отношения между доменами.
Следующая ветка содержит обсуждения, которые вы, вероятно, найдете полезными.
http://sql-server-performance.com/Community/forums/p/24601/137574.aspx
Я принимал участие в создании соединения SQL-сервера с такими доменами, и это чрезвычайно болезненно. Чтобы использовать учетные данные из другого домена, домен, которому вы назначаете разрешения, должен доверять домену, откуда поступает учетная запись. ИТ-специалисты, как правило, ОЧЕНЬ неохотно доверяют другому домену таким образом и по уважительной причине, поэтому, если эти доверительные отношения не установлены, вряд ли это убедит администраторов сделать это.
После установления доверительных отношений вам, вероятно, потребуется зарегистрировать имена участников-служб для вашего SQL-сервера в Active Directory и назначить разрешения на делегирование. Этот тип среды очень сложен в настройке, устранении неполадок и обслуживании.
Я надеюсь, что есть другой способ сделать это, потому что, похоже, вы движетесь к очень сложному сценарию.
Надеюсь, это поможет Rihan