Ошибка входа для пользователя «NT AUTHORITY \ NETWORK SERVICE»

Я боролся с этим уже 2 дня, не прибегая к решению. Я прочитал 20-30 нитей alteast и stil не может решить это.

Пожалуйста, помогите мне.

Я отключил анонимную аутентификацию, включил олицетворение asp.net.

Я добавил

Я добавил пользователя к входам безопасности, которые подключены к базе данных, к которой я пытаюсь подключиться.

Это строка соединения, которую я использую:

 Data Source=IPTOSERVER;Initial Catalog=Phaeton;User Id=User;Password=Password; 

сообщение об ошибке:

Не удается открыть базу данных «Phaeton.mdf», запрошенную при входе в систему. Ошибка входа в систему.

Ошибка входа для пользователя «NT AUTHORITY \ NETWORK SERVICE».

Сообщение об ошибке, которое вы получаете, сообщает вам, что приложение не удалось подключиться к серверу sqlexpress, а не к серверу sql. Я просто изменю имя db в sql-сервере и затем соответствующим образом обновляю строку соединения и повторю попытку.

В сообщении об ошибке указано следующее:

 Cannot open database "Phaeton.mdf" requested by the login. The login failed. 

Мне кажется, что вы все еще пытаетесь подключиться к базе данных на базе файлов, имя «Phaeton.mdf» не совпадает с вашим новым именем базы данных sql «Phaeton».

Надеюсь это поможет.

У меня возникло аналогичное сообщение об ошибке, которое я заметил в средстве просмотра событий Windows, которое гласит:

Ошибка входа для пользователя «NT AUTHORITY \ NETWORK SERVICE». Причина: Не удалось открыть явно указанную базу данных. [КЛИЕНТ: локальная машина]

Решение, которое разрешило мою проблему, было:

  1. Вход в SqlExpress через SQL Server Management Studio
  2. Перейдите в каталог «Безопасность» базы данных
  3. Щелкните правой кнопкой мыши каталог «Пользователи»
  4. Выберите «Новый пользователь …»
  5. Добавьте «NT AUTHORITY \ NETWORK SERVICE» в качестве нового пользователя
  6. В области Членство в роли данных выберите db_owner
  7. Нажмите ОК.

Вот скриншот: Снимок экрана с добавлением нового пользовательского сетевого сервиса как db_owner в SqlExpress

Если сообщение об ошибке просто

«Ошибка входа для пользователя« NT AUTHORITY \ NETWORK SERVICE ».», Затем предоставить разрешение на вход для «NT AUTHORITY \ NETWORK SERVICE»

используя

 "sp_grantlogin 'NT AUTHORITY\NETWORK SERVICE'" 

иначе, если сообщение об ошибке

«Не удается открыть базу данных« Phaeton.mdf », запрошенную при входе в систему. Ошибка входа в систему. Ошибка входа для пользователя« NT AUTHORITY \ NETWORK SERVICE ».

попробуйте использовать

 "EXEC sp_grantdbaccess 'NT AUTHORITY\NETWORK SERVICE'" 

в вашей базе данных «Phaeton».

Мне понравилось решение Jed, но проблема в том, что каждый раз, когда я создавал свой проект в режиме отладки, он развертывал мой проект базы данных и снова удалял пользователя. поэтому я добавил этот скрипт MySQL к сценарию Post-Deployment. он практически делает то, что сказал Джед, но создает пользователя при каждом развертывании.

 CREATE USER [NT AUTHORITY\NETWORK SERVICE] FOR LOGIN [NT AUTHORITY\NETWORK SERVICE] WITH DEFAULT_SCHEMA = dbo; Go EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\NETWORK SERVICE' 

Вы сказали, что он отлично работает, когда вы используете выпуск SQL Express. По умолчанию express-выпуски создают именованный экземпляр и запускаются в NT Authority \ Network Service.

SQL Server STD по умолчанию устанавливает экземпляр по умолчанию и запускается в NT Authority \ SYSTEM.

У вас есть полная версия SQL Edition и Express, установленная на том же компьютере?

  1. Возможно, что где-то строка подключения по-прежнему относится к экземпляру NAME «SQLEXPRESS», а не к экземпляру по умолчанию, созданному полной версией.

  2. Также где определена строка соединения? В IIS или вашем коде? Убедитесь, что, если они определены во многих местах, все указывают на один экземпляр SQL и базу данных.

  3. Также попробуйте просмотреть подробную ошибку, присутствующую в журналах ошибок SQL Server. Ошибка, зарегистрированная в журнале событий, не является полной по соображениям безопасности. Это также поможет вам узнать, было ли подключение к правильному SQL Server.

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

  5. Убедитесь, что firebase database существует в SQL Server. Имя, отображаемое в базах данных в SQL Management Studio, должно совпадать с именем в строке подключения.

Для входа в SQL Server требуется DOMAIN\machinename$ . Это то, как вызывающий NT AUTHORITY\NETWORK SERVICE появляется в SQL Server (и файловых серверах и т. Д.),

В SQL,

 CREATE LOGIN [XYZ\Gandalf$] FROM WINDOWS 

Лучший способ – создать пользователя для вашего приложения и назначить разрешения, подходящие для этого пользователя. Не используйте «NT AUTHORITY \ NETWORK SERVICE», так как ваш пользователь имеет свою собственную уязвимость, и это пользователь, имеющий разрешения на столь многие вещи на уровне ОС. Держитесь подальше от этого встроенного пользователя.

Я использую Entity Framework для повторной работы с моей базой данных, и пользователи получают переопределение при каждом создании моей базы данных.

Теперь я запускаю это каждый раз, когда загружаю новый DBC-текст:

 cnt.Database.ExecuteSqlCommand("EXEC sp_addrolemember 'db_owner', 'NT AUTHORITY\\NETWORK SERVICE'"); 
  • Как сохранить словарь в моем файле web.config?
  • Веб-сайты Windows Azure переопределяют мои страницы ошибок 404 и 500 в моем приложении node.js
  • Как зашифровать одну запись в web.config
  • Избегайте наследования web.config в дочернем веб-приложении с использованием inheritInChildApplications
  • Для чего нужны файлы Web.Debug.config и Web.Release.Config?
  • Добавление machineKey в web.config на веб-сайтах
  • Плюсы и минусы AppSettings vs applicationSettings (.NET app.config / Web.config)
  • Настройка нескольких параметров SMTP в web.config?
  • Указанный аргумент вышел за пределы допустимых значений. Имя параметра: сайт
  • Тайм-аут аутентификации форм против тайм-аута sessionState
  • Ограничить доступ к определенному controllerу по IP-адресу в бета-версии ASP.NET MVC
  • Давайте будем гением компьютера.