2014-12-23 9 views
1

У меня есть веб-сайт, и я пытаюсь настроить DSN вместо использования строки подключения, потому что она кажется более безопасной.Вход в SQL Server работает в строке подключения, но сбой в DSN

Следующая строка подключения отлично работает на моем сайте:

"Server=servername; database=mydb; user id= web.account; password=PassW0rd!; Integrated Security=SSPI" 

Однако, когда я пытаюсь создать DSN (using the 64-bit odbc admin) Я получаю следующее сообщение об ошибке:

Connection failed: 
SQLState: '28000' 
SQL Server Error: 18456 
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'web.account' 

Имейте в виду, , Я использую ту же учетную запись и пароль, которые я использую в строке подключения (которая работает). Странно, потому что ошибка возникает сразу после нажатия кнопки «Далее» в разделе «Как должен SQL Server проверить подлинность идентификатора входа?» стр.

Кажется, администратор odbc даже не пытается подключиться к серверу для проверки учетных данных. Что я могу проверить, чтобы доказать это/Как я могу это исправить?

Что я пробовал:

  • Я проверил режим проверки подлинности сервера, as proposed in other solutions, и устанавливается в «SQL Server и режим проверки подлинности Windows», как это должно быть.
  • Я попытался создать как пользовательский, так и системный DSN - и получить ту же ошибку, это похоже на дальнейшее доказательство того, что он не пытается подключиться к серверу для проверки учетных данных.
  • Я пробовал одно и то же создание DSN на нескольких серверах, все они имеют ту же проблему. Возможно ли, что SQL Server отказывается от этих типов соединений?

UPDATE 1: АБД только что сказал мне, что на самом деле web.account учетная запись для Windows, а не SQL учетной записи. Я думаю, именно поэтому odbc не работает, потому что он не пытается подключиться как другой пользователь Windows, только как текущий пользователь Windows. Итак, теперь вопрос в том, как настроить DSN с другой учетной записью Windows? Или это возможно?

+0

DSNless vs DSN выполняется на одной и той же машине справа? если он находится на новом, вы можете выполнить ping базу данных с машины, имеющей DSN? Проверяет ли журнал проверки подлинности SQL Server сообщение об ошибке? Если нет, то вы знаете, что это связано с подключением к БД, а не с самим БД, отклоняющим соединение. – xQbert

ответ

-2

Попробуйте следующее:

Data Source=servername;Initial Catalog=mydn;Persist Security Info=True;User ID=web.account;Password=Passw0rd 

Это то, что я использую для подключения.

+0

Строка подключения работает нормально. Я пытаюсь использовать DSN. –

0

This post имеет ответ, который говорит, что установка DSNs с аутентификацией NT специально для всей системы, а не конкретной учетной записи, поэтому RunAs команда может быть использована с ЦМД, например, так:

runas /netonly /user:domain\web.account "C:\Windows\SysWOW64\odbcad.exe"

Это будет потом спросите у вас пароль web.account. Затем вы можете создать DSN, и это должно сработать.

ОБНОВЛЕНИЕ: мне пришлось добавить пользователя web.account в мою административную группу, используя this fine how-to. Затем мне пришлось запустить cmd как мою повышенную учетную запись. Затем я запустил команду runas, показанную выше. Затем я наконец смог создать неродный DSN, который позволил мне подключиться к Data Server как другому пользователю Windows.

Все еще ждут, когда DBA проверяет журналы, чтобы сказать, что это действительно сработало или нет, но я чувствую себя довольно хорошо.Будет обновляться после подтверждения.