[FIX] Ошибка «NT AUTHORITY/LOCAL SERVICE не найдена»
Ошибка «NT AUTHORITY/LOCAL SERVICE не может быть найдена» — это ошибка данных сервера SQL, которая обычно возникает в Visual Studio или при выполнении определенных задач в выпусках Windows Server. Хотя некоторые люди сталкиваются с этой проблемой после установки новых серверных приложений или при компиляции приложения Visual Studio, другие видят ее при попытке установить службу с помощью расширенного установщика.
NT AUTHORITY/LOCAL SERVICE не удается найти.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Существует несколько различных распространенных причин, по которым вы можете столкнуться с ошибкой NT AUTHORITY\NETWORK SERVICE, и они будут различаться в зависимости от вашего варианта использования.
Чаще всего ваш сетевой администратор мог удалить конкретный вход в Windows по разным причинам. Как следствие, вы не сможете предоставить доступ для входа на сервер SQL.
Другая причина, по которой вы можете увидеть эту ошибку, — это когда вы пытаетесь добавить новый логин с тем же SID, что и существующий логин SQL Server. В этом случае вы также должны увидеть код ошибки 15401.
Однако также подтверждается, что ошибка «NT AUTHORITY/LOCAL SERVICE не может быть найдена» возникает, когда логин находится в домене, отличном от SQL-сервера, или если используется конкретный механизм разрешения имен (WINS, DNS, HOSTS или LMHOSTS) настроен неправильно.
Ниже вы найдете серию подтвержденных исправлений, которые другие затронутые пользователи успешно использовали, чтобы разобраться в этой проблеме.
1. Проверьте, существует ли NT AUTHORITY\LOCAL SERVICE и есть ли у него необходимые разрешения.
Прежде чем перейти к другим техническим исправлениям, первое, что вам нужно сделать, это убедиться, что учетная запись NT AUTHORITY\LOCAL SERVICE действительно существует в системе, где вы пытаетесь ее использовать.
Если вы пришли к выводу, что учетная запись существует, найдите время, чтобы убедиться, что у вас достаточно привилегий для фактического создания необходимого ведения журнала и связанного с ним пользователя на уровне SQL Server.
Эта процедура будет немного отличаться в зависимости от вашей версии сервера Windows, но общие шаги одинаковы для каждой версии Windows Server.
Вот что вам нужно сделать:
- Откройте панель мониторинга Windows Server Essentials.
- Получите доступ к основной панели навигации и нажмите «Пользователи».
Доступ к вкладке пользователей
- Просмотрите список текущих пользователей и посмотрите, сможете ли вы найти запись с именем NT AUTHORITY\LOCAL SERVICE.
Примечание. Если запись, связанная с NT AUTHORITY\LOCAL SERVICE, отсутствует, щелкните гиперссылку «Добавить учетную запись пользователя», чтобы открыть мастер добавления учетной записи пользователя. Оттуда следуйте инструкциям по созданию пользователей для NT AUTHORITY\LOCAL SERVICE и убедитесь, что соглашение об именовании правильное. - Убедившись, что учетная запись присутствует, давайте удостоверимся, что у нее есть необходимые разрешения. Для этого щелкните учетную запись NT AUTHORITY\LOCAL SERVICE в разделе «Пользователи», затем перейдите на панель «Задачи» и щелкните «Свойства».
- Затем перейдите на вкладку «Общие», на вкладку «Общие папки», а затем на вкладку «Повсеместный доступ» и включите все разрешения, необходимые для этой учетной записи, в зависимости от вашего конкретного случая использования.
Включение необходимых разрешений для учетной записи
- Сохраните изменения и повторите действие, которое ранее приводило к ошибке «Не удалось найти NT AUTHORITY/LOCAL SERVICE», теперь исправлено.
Если вы уже убедились, что учетная запись пользователя NT AUTHORITY\LOCAL SERVICE создана и у нее есть необходимые разрешения, перейдите к следующему способу ниже.
2. Создайте логин SQL Server (если применимо)
Если вы получаете эту ошибку при использовании приложения уровня данных SQL Server в проекте Visual Studio, скорее всего, вы видите эту ошибку после создания сценария, который добавляет NT AUTHORITY\LOCAL SERVICE в список входа в систему в разделе «Объекты уровня сервера».
Если вы использовали следующие сценарии для создания логинов и добавления их в объекты уровня базы данных, этот метод применим:
СОЗДАТЬ ЛОГИН [NT AUTHORITY\LOCAL SERVICE] ИЗ WINDOWS С DEFAULT_LANGUAGE=[us_english]
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ [NT AUTHORITY\LOCAL SERVICE] ДЛЯ ВХОДА [NT AUTHORITY\LOCAL SERVICE]
В этом случае вы, вероятно, получаете ошибку при попытке скомпилировать проект с ошибкой «Невозможно найти NT AUTHORITY\LOCAL SERVICE, поскольку он не существует или разрешение не предоставлено».
Если этот сценарий применим, причина, по которой вы не можете создать [NT AUTHORITY\LOCAL SERVICE] login заключается в том, что NT AUTHORITY\LOCAL SERVICE в данном случае является не чем иным, как встроенной учетной записью службы Windows. Каждая служба в SQL Server должна иметь учетную запись, определенную во время установки, чтобы запускаться и работать.
Учетные записи запуска SQL Server могут быть встроенными системными учетными записями, локальными учетными записями пользователей или учетными записями пользователей домена. Учетная запись локальной службы — это встроенная учетная запись, которая имеет доступ к тем же ресурсам и объектам, что и члены группы «Пользователи». Этот ограниченный доступ служит для защиты системы в случае захвата определенных служб или процессов.
Службы, работающие в качестве учетной записи локальной службы, используют нулевой сеанс для доступа к сетевым ресурсам.
ВАЖНО: будьте осторожны, чтобы службы SQL Server или агента SQL Server не поддерживали учетную запись локальной службы. Полное имя учетной записи — «NT AUTHORITY/LOCAL SERVICE».
Чтобы обойти эту проблему, вам потребуется создать учетную запись SQL Server, использующую проверку подлинности Windows через Transact-SQL.
Для этого начните с создания пользователя в Windows, затем откройте следующую команду Transact-SQL в редакторе запросов и убедитесь, что имя входа совпадает с именем пользователя Windows:
CREATE LOGIN <имя пользователя Windows> FROM WINDOWS; ИДТИ
Примечание. Имейте в виду, что <имя пользователя Windows> — это просто заполнитель. Замените его реальным именем пользователей Windows.
3. Добавьте соответствующие разрешения для SQL (если применимо).
Другая причина, по которой вы можете столкнуться с этой проблемой, — это сценарий, в котором вы не добавили надлежащие разрешения в SQL для службы NT AUTHORITY/LOCAL SERVICE, а только предоставили контроль над папкой.
Чтобы устранить эту проблему, вам нужно открыть SQL Server Management Studio (Enterprise Manager) и изучить экземпляр SQL, к которому вы пытаетесь подключиться. Оттуда вам нужно будет перейти в «Безопасность»> «Логин» и создать новый логин, используя метод проверки подлинности Windows для NT AUTHORITY/LOCAL SERVICE.
Вот краткое руководство о том, как это сделать:
- Откройте стартовую страницу и введите «SSMS».
- В списке результатов выберите Microsoft SQL Server Management Studio.
Откройте студию управления SQL
- Как только вы окажетесь внутри утилиты Microsoft SQL Server Management Studio, перейдите к конкретному экземпляру SQL, который вызывает ошибку.
- После того, как вы успешно получили доступ к конкретному экземпляру SQL, изучите его, выбрав Безопасность > Логины (отфильтрованные).
Доступ к папке логинов
- Щелкните правой кнопкой мыши базовый элемент, затем щелкните Проверка подлинности Windows.
- Затем введите «NT AUTHORITY/LOCAL SERVICE» и подтвердите создание правильных разрешений SQL.
- Не забудьте добавить соответствующие разрешения для этой новой учетной записи, если вы еще этого не сделали.
Примечание. Вернитесь к методу 1 для конкретных шагов. - Повторите действие, которое ранее вызывало проблему, и посмотрите, устранена ли проблема.
4. Перестройте базу данных SQL Server (если применимо).
Если вы уже пытались изменить пользователя «Войти как» в службе SQL Server на NT AUTHORITY/LOCAL SERVICE, и это не сработало, вы можете решить проблему, используя Download Installer для извлечения шестнадцатеричного имени перед восстановление базы данных SQL и копирование файлов обратно.
Вот краткое руководство о том, как это сделать:
- Запустите загруженный установщик и дайте ему извлечь файлы в папку по умолчанию.
Примечание. Извлечение будет развернуто в корневом каталоге диска вашей ОС (наиболее похожем на C:/) с длинным шестнадцатеричным именем. - После завершения извлечения найдите время, чтобы скопировать все файлы в другую папку, чтобы предотвратить стирание их содержимого следующим действием.
- Закройте программу установки.
Примечание. Как только вы это сделаете, содержимое шестнадцатеричной папки, которую вы создали на шаге 2, будет удалено. - Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить».
- Затем введите «cmd» и нажмите Ctrl + Shift + Enter, чтобы открыть командную строку вашего сервера с повышенными привилегиями.
Откройте окно CMD с повышенными привилегиями
- В разделе «Контроль учетных записей» (UAC) нажмите «Да», чтобы предоставить доступ администратора.
- Используйте компакт-диск, чтобы перейти к месту, где вы ранее сохранили извлеченные файлы (на шаге 3). Вот пример команды: CD C:\23420247290247292740
Примечание. Это всего лишь пример фрагмента. Измените приведенную выше команду, чтобы перейти к фактическому месту, где вы сохранили файлы (на шаге 3).
- После того, как вы оказались в нужном месте, выполните следующую команду, чтобы воссоздать и перестроить базу данных: setup /action=RebuildDatabase /InstanceName=SQLEXPRESS /SqlSysAdminAccounts=BUILTIN\Administrators
- Закройте приглашение CMD с повышенными привилегиями и повторите действие, которое вызывало «Невозможно найти NT AUTHORITY/LOCAL SERVICE», чтобы увидеть, устранена ли проблема.
5. Курировать MachineGUID и перезагрузить службу SQL
Если вы получаете эту ошибку при попытке запустить сервер SQL, и проблема начала возникать после того, как вы изменили встроенный вход в систему с локальной службы на локальную систему, проблема, вероятно, вызвана разделом реестра MachineGUID, который больше не указывает на правильный путь.
Другие пользователи, оказавшиеся в похожей ситуации, подтвердили, что им удалось решить проблему, создав резервную копию проблемного ключа перед изменением пути и перезапуском службы SQL.
Вот краткое руководство о том, как это сделать:
- Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить».
- Затем введите «regedit» и нажмите Ctrl + Shift + Enter, чтобы открыть редактор реестра с правами администратора.
Открытие редактора реестра
- В разделе «Контроль учетных записей» (UAC) нажмите «Да», чтобы предоставить доступ администратора.
- В редакторе реестра используйте левую панель, чтобы перейти к следующему местоположению: HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid.
- Как только вы доберетесь до нужного места, определите проблемный ключ. Он должен иметь GUID затронутой машины с фигурными скобками (например, {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})
- После того, как вы правильно идентифицировали затронутую машину, нам нужно создать резервную копию. Для этого убедитесь, что ключ компьютера выбран, затем используйте файл ленты вверху, чтобы перейти к «Файл» и нажмите «Экспорт».
Экспорт файла
- Укажите местоположение и дайте узнаваемое имя файла, а также убедитесь, что для параметра «Сохранить как» задано значение «Файлы регистрации» (*.reg).
- Наконец, прежде чем нажать «Сохранить», убедитесь, что для параметра «Диапазон экспорта» установлено значение «Выбранная ветвь» и что выбрана правильная ветвь.
Экспорт конкретной ветки
- Нажмите «Сохранить», чтобы завершить процесс резервного копирования.
- После завершения резервного копирования переименуйте проблемный ключ и удалите фигурные скобки.
Примечание. Значение MachineGuid должно измениться с {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} на xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. - После применения этой модификации закройте редактор реестра, перезагрузите компьютер и запустите службу SQL. Важно: Если служба не запускается сразу, удалите и переустановите SQL перед повторной перезагрузкой. Если вы получили другую ошибку, восстановите исходную резервную копию, созданную на шаге 8, и перейдите к следующему способу ниже.
Если вы получаете сообщение «NT AUTHORITY/LOCAL SERVICE не может быть найдено» при попытке получить данные с вашего SQL-сервера с помощью asp.net, одним из быстрых способов исправить любую локальную причину является изменение сопоставления пользователя с его правильными значениями.
Примечание. Это исправление эффективно в ситуациях, когда вы используете локальную базу данных SQL Server Management Studio и пытаетесь ввести в нее данные с помощью приложения asp.net.
Если вы дважды проверили входные данные и весь код верен, но ошибка по-прежнему возникает, следуйте приведенным ниже инструкциям, чтобы использовать SQL Server Management Studio для доступа к странице «Логин» и изменить текущие назначенные сопоставления пользователей на экране «Свойства».
Вот краткое пошаговое руководство о том, как это сделать:
- Нажмите клавишу «Пуск» на клавиатуре, затем введите «SSMS» на начальной странице.
- В списке результатов выберите Microsoft SQL Server Management Studio.
Откройте студию управления SQL
- Затем войдите на сервер, который вызывает ошибку «NT AUTHORITY/LOCAL SERVICE не может быть найден».
- Перейдите в раздел «Безопасность», затем войдите в подраздел «Логин».
- В списке параметров щелкните правой кнопкой мыши NT AUTHORITY\NETWORK SERVICE или NT AUTHORITY\LOCAL SERVICE (в зависимости от вашего конкретного варианта использования) и выберите «Свойства» в контекстном меню.
Доступ к экрану свойств локальной службы
- Когда вы окажетесь на экране «Свойства входа», выберите «Сопоставление пользователей» в верхней левой части экрана.
- С правой стороны вы получите список ролей баз данных. Убедитесь, что установлен флажок «владелец базы данных», затем нажмите «ОК».
- Повторно запустите код, который ранее вызывал проблему, и посмотрите, решена ли теперь проблема.
7. Предоставьте доступ роли системного администратора (если применимо)
Если вы получаете эту ошибку при попытке доступа к базе данных для приложения, созданного локально, первое, что вы должны проверить, это то, разрешает ли текущая конфигурация NT AUTHORITY/LOCAL SERVICE под ролью системного администратора.
Вы можете сделать это, открыв Microsoft SQL Server Management Studio и изменив свойства службы NT AUTHORITY/LOCAL, чтобы включить роль системного администратора.
Вот краткое руководство о том, как это сделать:
- Нажмите клавишу «Пуск» на клавиатуре, затем введите «SSMS» на начальной странице.
- В списке результатов выберите Microsoft SQL Server Management Studio.
Откройте студию управления SQL
- Затем перейдите в раздел «Безопасность» и разверните меню «Логин».
- Щелкните правой кнопкой мыши NT AUTHORITY/Local System и выберите «Свойства» в контекстном меню.
- На экране «Свойства» нажмите «Роли сервера» в меню слева.
- Перейдите к правой стороне и убедитесь, что установлен флажок, связанный с системным администратором.
Изменение ролей сервера
- Сохраните изменения, затем перезагрузите компьютер и посмотрите, устранена ли проблема.
Если вы по какой-либо причине не можете получить доступ к Microsoft SQL Server Management Studio, вы также можете применить это исправление из командной строки с повышенными привилегиями (если ваш доступ позволяет это).
Вот как это сделать:
- Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить».
Затем введите «cmd» и нажмите Ctrl + Shift + Enter, чтобы открыть редактор реестра с правами администратора.Откройте приглашение CMD
- В ответ на приглашение контроля учетных записей (UAC) нажмите «Да», чтобы предоставить доступ администратора.
- В командной строке с повышенными привилегиями введите следующую команду (и измените заполнитель), чтобы получить доступ к конкретному серверу, вызывающему проблему: sqlcmd -S (*имя сервера*)
Примечание. Не забудьте изменить *имя сервера* на фактическое имя сервера в вашем конкретном случае.
- Затем введите следующую команду и нажмите Enter, чтобы получить доступ к серверу SQL на вашем компьютере: выберите имя из sys.server_principals, где name=”NT AUTHORITY\SYSTEM”
- Затем введите следующую команду, чтобы получить результат и использовать его в процедуре сортировки, где к нему будут добавлены права системного администратора: SP_ADDSRVROLEMEMBER ‘NT AUTHORITY\SYSTEM’, ‘SYSADMIN’
- После того, как обе команды будут успешно обработаны, закройте приглашение CMD с повышенными привилегиями и повторите действие, которое вызывало ошибку «NT AUTHORITY/LOCAL SERVICE не может быть найден».
8. Измените язык сервера на английский (если применимо).
Если при использовании расширенного установщика для вызова службы NT AUTHORITY\LOCAL SERVICE вы получаете сообщение «NT AUTHORITY/LOCAL SERVICE не может быть найдено», ошибка может быть симптомом, вызванным ошибкой, затрагивающей внешние серверы.
Подтверждено, что эта проблема возникает, когда некоторые пользователи расширенного установщика пытаются запустить службу сервера автоматизации XUA вручную через экран «Служба» или когда они пытаются запустить ее вручную, введя только имя пользователя (без полномочий NT).
Примечание. Эта проблема возникает из-за того, что SCM не поддерживает локализованные имена, даже если подсистема безопасности локализует их. Хотя вы получите локализованное имя для своей учетной записи на внешнем сервере, учетная запись должна быть NT AUTHORITY\LocalService при использовании таких функций, как CreateService или ChangeServiceConfig.
Если этот сценарий применим, единственным решением на данный момент является использование английской версии соглашения об именах.
Поэтому вместо использования команд на локальном языке сервера (например, AUTORITE NT\SERVICE LOCAL) используйте английский эквивалент (NT AUTHORITY\LocalService).
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)