Как подключиться к базе данных MS SQL Server из ASP, используя проверку подлинности Windows, указав пользователя Windows

Я пытался чуть больше месяца подключить ASP-скрипт здесь к базе данных SQL Server, но каждый раз использую эту строку подключения:
Data Source=dbServer01;Initial Catalog=POS123;Integrated Security=SSPI;User ID=domain\usr;Password=pwd;

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

поэтому я изменяю значение встроенной безопасности на False, например:
Data Source=dbServer01;Initial Catalog=POS123;Integrated Security=False;User ID=domain\usr;Password=pwd;

Затем я получаю сообщение об ошибке: Ошибка входа в систему для пользователя «domain\usr», что невозможно, потому что оно работает, когда мы проверяем соединение с ним в приложении администратора odbc.

Я попросил помощи у старшего, и он сказал, что он использует имя пользователя в качестве имени пользователя базы данных, но нам нужно заставить его использовать проверку подлинности Windows и указать, какого пользователя использовать. Я помню, как читал об этом месяц назад и обнаружил, что невозможно указать пользователя и пароль при подключении с использованием проверки подлинности Windows с этой версией ASP.NET. Я скоро убью себя. Если я не могу подключить этот скрипт, кто-нибудь, пожалуйста, спасите меня!


person pythonian29033    schedule 09.07.2013    source источник


Ответы (1)


У вас есть как минимум 2 3 варианта:

  • Создайте пул приложений на своем веб-сервере, который работает как domain/usr, а затем назначьте свое приложение этому пулу приложений и используйте встроенную безопасность. Ваша строка подключения будет Data Source=dbServer01;Initial Catalog=POS123;Integrated Security=SSPI; — т. е. отбросить имя пользователя и пароль — они присущи идентификатору AppPool.
  • или (при условии, что безопасность смешанного режима включена) попросите вашего администратора баз данных создать нового пользователя SQL (только что названного usr) с теми же разрешениями, что и domain/usr, а затем измените строку подключения на стандартную безопасность с User Id=usr
  • Если вы включите олицетворение (здесь и здесь), вы можете использовать учетные данные домена без изменения идентификатора пула приложений. Обратите внимание на защиту паролей в открытом виде, и IME обычно также требует дополнительной настройки, чтобы избежать 0-sql2008r2">проблема с двойным переходом.
person StuartLC    schedule 09.07.2013
comment
Я запустил пул приложений по умолчанию от имени этого пользователя, он не работает, ошибка сохраняется - person pythonian29033; 10.07.2013
comment
Это может быть связано с тем, что вы установили как SSPI, так и UName/Password - это несовместимо - stackoverflow.com/questions/1229691/. Кроме того, дважды проверьте, вы настроили свое приложение на использование пула приложений по умолчанию? Я добавил возможность олицетворения для полноты картины, но не рекомендовал бы ее. - person StuartLC; 10.07.2013
comment
сладкий! Мне нужно это олицетворение, я знаю, что это не идеально для безопасности, но это просто статистика, и мне сказали использовать олицетворение в любом случае - person pythonian29033; 10.07.2013
comment
Сладкий! Я нашел эту строку в моем файле web.config: <identity impersonate="false" userName="" password="" /> и изменил ее на: <identity impersonate="true" userName="MS\Benson" password="MyPassword" /> теперь это работает! - person pythonian29033; 10.07.2013