VB6 и Sql server 2016 Строка экспресс-подключения

В одной из наших старых строк подключения к приложению vb6:

nk = "Provider=SQLOLEDB;"
nk = nk + "Integrated Security=SSPI;"
nk = nk + "Persist Security Info=False;"
nk = nk + "User ID=sa;"
nk = nk + "Password=******;"
nk = nk + "Initial Catalog=" & db & ";"
nk = nk + "Data Source=" & hn
kon.ConnectionString = nk
kon.Open

Если я попытаюсь соединиться с этими опциями, он не будет работать, поэтому мне интересно, почему эти две опции:

nk = nk + "Integrated Security=SSPI;"
nk = nk + "Persist Security Info=False;"

не игнорируются?

Напомню, что приложение подключается к Sql Server 2016 Express в Windows Server 2016 Standard по локальной сети.

1 ответ

Решение

Ваша проблема с

Комплексная безопасность =SSPI

Он должен быть установлен в false (или вообще удален), так как вы не используете текущую аутентификацию пользователя Windows, а стандартную регистрацию с использованием пароля пользователя SQL.

Из документации MSDN:

Если установлено значение false, идентификатор пользователя и пароль указываются в соединении. Когда true, учетные данные текущей учетной записи Windows используются для проверки подлинности. Распознаются значения true, false, yes, no и sspi (настоятельно рекомендуется), что эквивалентно true. Если указаны ИД пользователя и Пароль, а для Интегрированной безопасности установлено значение true, ИД и Пароль пользователя будут игнорироваться и будет использоваться Интегрированная защита.

Другие вопросы по тегам