У меня есть приложение C #, которое подключается к серверу SQL с проверкой подлинности SQL, но машины, которые должны его использовать, не находятся в домене.
Вот уже несколько дней пытаюсь решить эту проблему. На моей машине разработки строка подключения работает отлично и не с использованием проверки подлинности Windows. Эта ошибка возникает, как только он находится на одной из других за пределами домена, включая учетные записи вне домена на моем компьютере.
Вход в систему не удался. логин из ненадежного домена и не может использоваться с аутентификацией Windows. Ошибка: 18452
Строка подключения (подробности опущены и отредактированы для удобства чтения):
Источник данных = [имя_сервера];
Исходный каталог = [База данных];
Сохранять информацию о безопасности = True;
ID пользователя = [имя пользователя];
Пароль = [пароль];
TrustServerCertificate = True;
Я также пробовал дополнительные строковые параметры, такие как Trusted_Connection (пробовал true и false) и Integrated Security = SSPI.
Все настройки подключения к серверу верны (разрешено удаленное подключение, порты, разрешена проверка подлинности Windows и SQL), и я могу подключиться к серверу по SSMS, используя имя пользователя и пароль.
Предполагая, что мои настройки верны (где-то должно быть что-то не так), разве это не отменяет точку использования входа пользователя SQL, если я не могу войти в систему удаленно? В любом случае, любая помощь приветствуется.
Оказывается, даже если вы используете Visual Studio Wizard для использования определенной строки подключения, VS не изменяет другие ссылки на нее. Файлы кода и настроек по-прежнему использовали старую строку подключения.
Я не был знаком с проектом в целом, так как мне просто было поручено изменить его для чуть большей функциональности.
Итак, для других, у которых возникнет такая же проблема в будущем и которые, похоже, не могут найти ответ:
Если моды хотят переместить это в StackOverflow, поскольку на самом деле это проблема кода, решать вам, ребята.
Честное предупреждение: я не разработчик C # (и не играю в него по телевизору).
В сообщении об ошибке говорится, что он пытается использовать проверку подлинности Windows, даже если это не так. («Integrated Security = SSPI» означает, что вы используете проверку подлинности Windows, например, как и «Надежное соединение».) Мне интересно, не относится ли одна из упущенных вами деталей только к проверке подлинности Windows.
Эта ссылка MSDN предназначен только для проверки подлинности SQL и может вам помочь, а может и не помочь. Эта ссылка MSDN предназначен только для проверки подлинности Windows и может подсказать вам варианты, которых следует избегать.