Назад | Перейти на главную страницу

Подключение к SQL Server вне домена с проверкой подлинности SQL

У меня есть приложение 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 не изменяет другие ссылки на нее. Файлы кода и настроек по-прежнему использовали старую строку подключения.

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

Итак, для других, у которых возникнет такая же проблема в будущем и которые, похоже, не могут найти ответ:

  • Если все настройки сервера верны, то он должен будь твоим кодом.
  • Убедитесь, что если вы ссылаетесь на строку подключения в своем проекте через Properties.Settings.Default.ConnectionStringName или что-то, что не является жестко закодированной строкой подключения, что она ссылается на правильную, и что по завершении не будет никаких других строк.

Если моды хотят переместить это в StackOverflow, поскольку на самом деле это проблема кода, решать вам, ребята.

Честное предупреждение: я не разработчик C # (и не играю в него по телевизору).

В сообщении об ошибке говорится, что он пытается использовать проверку подлинности Windows, даже если это не так. («Integrated Security = SSPI» означает, что вы используете проверку подлинности Windows, например, как и «Надежное соединение».) Мне интересно, не относится ли одна из упущенных вами деталей только к проверке подлинности Windows.

Эта ссылка MSDN предназначен только для проверки подлинности SQL и может вам помочь, а может и не помочь. Эта ссылка MSDN предназначен только для проверки подлинности Windows и может подсказать вам варианты, которых следует избегать.