Я недавно установил ISS с SQL-сервером и приложением asp.net mvc. Я хочу, чтобы мое приложение использовало проверку подлинности Windows. Что касается моего приложения, я знаю, что у меня хорошая строка подключения, потому что я запускал ее на своем локальном компьютере, и он работал нормально.
На моем новом удаленном сервере он не хочет работать, поэтому я изменил строку подключения на использование учетных данных - sa, и это сработало. Итак, мне явно не хватает какой-то конфигурации для аутентификации Windows.
Насколько я знаю, я добавил сетевую службу к своим логинам на сервере sql и предоставил ей права администратора. Кроме того, мой пул приложений работает как сетевая служба. Это все еще не работает, что я пропустил?
Изменить для пояснения: WinAuth включен на моем сервере sql.
Я думаю, что пользователь "Сетевой службы" работает не так, как вы ожидаете.
Попробуйте настроить пул приложений для запуска от имени конкретного пользователя, а затем добавьте этого же пользователя для входа на сервер slq. Затем при сопоставлении пользователей дайте этому пользователю минимальный набор разрешений, необходимых для конкретных БД. Обычно достаточно db_datareader и db_datawriter.
Обратите внимание: пользователю, которого вы используете, не требуются какие-либо специальные разрешения на машине. Это может быть локальный пользователь или пользователь домена, который вообще не является членом какой-либо группы безопасности. Если вы создаете нового пользователя специально для этой цели, вы можете сделать его стандартным пользователем, а затем вы можете войти в диспетчер пользователей и удалить его из группы пользователей, чтобы у него не было доступа по умолчанию к машине. Таким образом, вы по-прежнему получаете преимущество использования метода проверки подлинности Windows в строке подключения.