Naprawianie błędu „NT AUTHORITY/LOCAL SERVICE Cannot Be Found”
Błąd „ NT AUTHORITY/LOCAL SERVICE cannot be found ” to błąd danych SQL Server, który zazwyczaj występuje w programie Visual Studio lub podczas wykonywania niektórych zadań w systemie Windows Server. Niektórzy użytkownicy napotykają ten problem po zainstalowaniu nowych aplikacji serwerowych lub podczas kompilowania aplikacji programu Visual Studio , a inni widzą go podczas próby zainstalowania usługi za pomocą instalatora zaawansowanego.
Istnieje kilka różnych częstych przyczyn, które mogą spowodować błąd usługi NT AUTHORITYNETWORK SERVICE. Powody te różnią się w zależności od przypadku użycia.
W większości przypadków administrator sieci mógł usunąć określone dane logowania systemu Windows z różnych powodów. W rezultacie nie będziesz mógł udzielić dostępu do danych logowania SQL Server.
Innym powodem pojawienia się tego błędu może być próba dodania nowego loginu z tym samym identyfikatorem zabezpieczeń (SID) co istniejący login w programie SQL Server. W takim przypadku powinien pojawić się również kod błędu 15401.
Potwierdzono jednak, że błąd „NT AUTHORITY/LOCAL SERVICE cannot be found” występuje również wtedy, gdy logowanie odbywa się w innej domenie niż serwer SQL lub gdy używany mechanizm rozpoznawania nazw specyficznych dla użytkownika (WINS, DNS, HOSTS lub LMHOSTS) nie jest poprawnie skonfigurowany.
Poniżej znajdziesz szereg sprawdzonych rozwiązań, które inni użytkownicy dotknięci tym problemem z powodzeniem wykorzystali, aby dotrzeć do sedna problemu.
1. Sprawdź, czy usługa NT AUTHORITYLOCAL SERVICE istnieje i ma niezbędne uprawnienia.
Zanim przejdziesz do bardziej technicznych rozwiązań, pierwszą rzeczą, jaką musisz zrobić, jest upewnienie się, że konto NT AUTHORITYLOCAL SERVICE już istnieje w systemie, którego próbujesz użyć.
Jeśli ustaliłeś, że konto istnieje, poświęć chwilę, aby upewnić się, że masz wystarczające uprawnienia do utworzenia wymaganego loginu i powiązanego użytkownika na poziomie serwera SQL Server.
Procedura ta może się nieznacznie różnić w zależności od wersji systemu Windows Server, ale ogólne kroki są takie same w każdej wersji systemu Windows Server.
Oto co musisz zrobić:
- otwarty Panel sterowania systemu Windows Server Essentials.
- Przejdź do głównego paska nawigacyjnego i kliknij Użytkownicy.
- Przeglądaj listę aktualnych użytkowników i sprawdź, czy znajdziesz wpis o podanej nazwie Władze Terytorium Północnego, lokalne służby.
Ogłoszenie: Jeśli dane wejściowe są powiązane z Władze Terytorium PółnocnegoUSŁUGA LOKALNA Jeśli go brakuje, kliknij na hiperłącze. Dodaj konto użytkownika Otworzyć Kreator dodawania kont użytkowników. Następnie postępuj zgodnie z instrukcjami, aby utworzyć użytkowników dla usługi NT AUTHORITYLOCAL SERVICE i upewnij się, że konwencja nazewnictwa jest prawidłowa. - Po potwierdzeniu istnienia konta sprawdźmy, czy ma ono odpowiednie uprawnienia. Aby to zrobić, kliknij „Konto”. Władze Terytorium PółnocnegoUSŁUGA LOKALNA w ciągu Użytkownicy, Następnie przejdź do części misja i kliknij Nieruchomości.
- Następnie przejdź do zakładki ogólny, Następnie zakładka Udostępnione foldery, Następnie zakładka Dostęp z dowolnego miejsca Włącz wszystkie uprawnienia, których potrzebuje to konto, zależnie od przypadku użycia.
- Zapisz zmiany i powtórz procedurę, która poprzednio spowodowała pojawienie się błędu „NT AUTHORITY/LOCAL SERVICE cannot be found”. Teraz błąd powinien zostać rozwiązany.
Jeśli sprawdziłeś już, czy konto użytkownika NT AUTHORITYLOCAL SERVICE zostało utworzone i ma niezbędne uprawnienia, przejdź do następnej metody opisanej poniżej.
2. Utwórz login do serwera SQL (jeśli dotyczy)
Jeśli ten błąd pojawi się podczas korzystania z aplikacji warstwy danych programu SQL Server w projekcie programu Visual Studio, najprawdopodobniej pojawi się on po utworzeniu skryptu, który dodaje usługę NT AUTHORITYLOCAL SERVICE do listy logowań w obszarze Obiekty na poziomie serwera.
Ta metoda ma zastosowanie, jeśli do tworzenia i dodawania logowań w obiektach na poziomie bazy danych używasz następujących skryptów:
UTWÓRZ LOGOWANIE [USŁUGA LOKALNA NT] Z SYSTEMU WINDOWS Z JĘZYKIEM DOMYŚLNYM = [us_english] UTWÓRZ UŻYTKOWNIKA [USŁUGA LOKALNA NT] DO LOGOWANIA [USŁUGA LOKALNA NT]
W takim przypadku podczas próby kompilacji projektu najprawdopodobniej pojawi się komunikat o błędzie : „NT AUTHORITYLOCAL SERVICE could not be found because it does not exist or permission has not made”.
Jeśli dotyczy Cię ten scenariusz, powodem, dla którego nie możesz utworzyć konta [NT AUTHORITYLOCAL SERVICE], jest to, że w tym przypadku NT AUTHORITYLOCAL SERVICE to po prostu wbudowane konto usługi systemu Windows. Każda usługa w programie SQL Server musi mieć konto zidentyfikowane podczas instalacji, aby mogła się uruchomić i działać.
Konta startowe SQL Server mogą być wbudowanymi kontami systemowymi, lokalnymi kontami użytkowników lub kontami użytkowników domeny. Lokalne konto usługi to wbudowane konto, które ma dostęp do tych samych zasobów i obiektów, co członkowie grupy użytkowników . Ten ograniczony dostęp pomaga chronić system w przypadku naruszenia bezpieczeństwa niektórych usług lub procesów.
Usługi działające jako lokalne konto usługi korzystają z pustej sesji w celu uzyskania dostępu do zasobów sieciowych.
Ważne : Należy pamiętać, że usługi SQL Server ani SQL Server Agent nie obsługują lokalnego konta usługi. Pełna nazwa konta to „NT AUTHORITY/LOCAL SERVICE”.
Aby rozwiązać ten problem, należy utworzyć logowanie do serwera SQL Server korzystające z uwierzytelniania systemu Windows za pośrednictwem języka Transact-SQL.
Aby to zrobić, zacznij od utworzenia użytkownika w systemie Windows, a następnie otwórz poniższe polecenie Transact-SQL za pomocą Edytora zapytań i upewnij się, że nazwa logowania jest taka sama jak nazwa użytkownika systemu Windows:
UTWÓRZ LOGOWANIE Z SYSTEMU WINDOWS; PRZEJDŹ
Uwaga: Pamiętaj, że <nazwa użytkownika systemu Windows> to tylko symbol zastępczy. Zastąp ją rzeczywistą nazwą użytkownika systemu Windows.
3. Dodaj odpowiednie uprawnienia do SQL (jeśli dotyczy)
Inną przyczyną napotkania tego problemu jest sytuacja, w której nie dodano prawidłowych uprawnień w SQL dla NT AUTHORITY/LOCAL SERVICE i udzielono kontroli wyłącznie folderowi.
Aby rozwiązać ten problem, musisz otworzyć program SQL Server Management Studio (Enterprise Manager) i sprawdzić instancję SQL, z którą próbujesz się połączyć. Następnie przejdź do sekcji Zabezpieczenia > Logowania i utwórz nowe dane logowania, używając metody uwierzytelniania systemu Windows dla usługi NT AUTHORITY/LOCAL SERVICE.
Oto krótki przewodnik, jak to zrobić:
- Otwórz stronę startową i wpisz „SMS-y".
- Z listy wyników wybierz Studio zarządzania Microsoft SQL Server.
- Po uruchomieniu narzędzia Microsoft SQL Server Management Studio przejdź do konkretnego wystąpienia SQL powodującego błąd.
- Po pomyślnym uzyskaniu dostępu do określonej instancji SQL przejdź do niej Bezpieczeństwo > Logowania (filtrowane).
- Kliknij prawym przyciskiem myszy element główny, a następnie kliknij Windows Authentication.
- Następnie napisz 'WŁADZE TERENU Północnego/SŁUŻBA LOKALNA' Sprawdź, czy utworzyłeś prawidłowe uprawnienia SQL.
- Jeśli jeszcze tego nie zrobiłeś, upewnij się, że dodałeś odpowiednie uprawnienia do nowego konta.
Ogłoszenie: Zapoznaj się z Metoda 1 Aby uzyskać szczegółowe informacje na temat kroków. - Powtórz procedurę, która poprzednio spowodowała problem i sprawdź, czy problem został rozwiązany.
4. Odbuduj bazę danych SQL Server (jeśli to możliwe)
Jeśli próba zmiany użytkownika „Log on as” w ramach usługi SQL Server Service na NT AUTHORITY/LOCAL SERVICE nie przyniosła skutku, możesz spróbować rozwiązać problem, używając programu Download Installer do wyodrębnienia nazwy szesnastkowej przed ponownym utworzeniem bazy danych SQL i ponownym skopiowaniem plików.
Oto krótki przewodnik, jak to zrobić:
- Uruchom pobrany instalator i pozwól mu rozpakować pliki do domyślnej lokalizacji.
Ogłoszenie: Wyodrębnione dane zostaną opublikowane w katalogu głównym dysku systemu operacyjnego (najpewniej C:/) z długą nazwą szesnastkową. - Po zakończeniu rozpakowywania skopiuj wszystkie pliki do innego folderu, aby zapobiec usunięciu jego zawartości podczas kolejnej operacji.
- Zamknij instalator.
Ogłoszenie: Po wykonaniu tej czynności zawartość folderu szesnastkowego utworzonego w kroku 2 zostanie usunięta. - Kliknij Klawisz Windows + R Aby otworzyć okno dialogowe Uruchom.
- Następnie napisz „cmd” i naciśnij Ctrl + Shift + Enter ل Otwórz wiersz poleceń z uprawnieniami administratora Do twego sługi.
- kiedy pojawia się Kontrola konta użytkownika (UAC) dotknij نعم Nadanie uprawnień administratora.
- posługiwać się CD Aby przejść do lokalizacji, w której zapisałeś wcześniej wyodrębnione pliki (z kroku 3). Oto przykład:
Numer płyty CD:23420247290247292740
Uwaga: To tylko przykładowy fragment kodu. Zmodyfikuj powyższe polecenie, aby przejść do faktycznej lokalizacji, w której zapisałeś pliki (w kroku 3).
- Po dotarciu do właściwej lokalizacji uruchom następujące polecenie, aby ponownie utworzyć i odbudować bazę danych:
konfiguracja /action=RebuildDatabase /InstanceName=SQLEXPRESS /SqlSysAdminAccounts=BUILTINAdministrators
- Zamknij wiersz poleceń (CMD) z uprawnieniami administratora i powtórz procedurę, która powodowała błąd „Nie znaleziono usługi NT AUTHORITY/LOCAL SERVICE”, aby sprawdzić, czy problem został rozwiązany.
5. Skonfiguruj MachineGUID i uruchom ponownie usługę SQL
Jeśli ten błąd wystąpił podczas próby uruchomienia programu SQL Server i problem zaczął się pojawiać po zmianie wbudowanego logowania z Usługi lokalnej na System lokalny, problem jest prawdopodobnie spowodowany kluczem rejestru MachineGUID, który nie wskazuje już prawidłowej ścieżki.
Inni użytkownicy, którzy napotkali podobną sytuację, potwierdzili, że udało im się rozwiązać problem poprzez utworzenie kopii zapasowej klucza powodującego problem, a następnie zmodyfikowanie ścieżki i ponowne uruchomienie usługi SQL.
Oto krótki przewodnik, jak to zrobić:
- naciśnij klawisz . Windows + R Aby otworzyć okno dialogowe zatrudnienie.
- Następnie napisz „regedit” i naciśnij Ctrl + Shift + Enter Otworzyć Edytor rejestru Z uprawnieniami administratora.
- Gdy pojawi się okno Kontrola konta użytkownika (UAC), dotknij نعم Nadanie uprawnień administratora.
- ال Edytor rejestruUżyj lewej strony, aby przejść do następującej lokalizacji:
HKLMSOFTWAREMicrosoftCryptographyMachineGuid
- Po znalezieniu właściwej lokalizacji zidentyfikuj klucz powodujący problem. Powinien on zawierać identyfikator GUID danego urządzenia ujęty w nawiasy klamrowe (na przykład: {xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}).
- Po prawidłowym zidentyfikowaniu uszkodzonego urządzenia musimy utworzyć kopię zapasową. Aby to zrobić, upewnij się, że klucz urządzenia jest zaznaczony, a następnie skorzystaj z paska plików u góry, aby przejść do... plik i kliknij Eksport.
- Określ lokalizację, podaj rozpoznawalną nazwę pliku i upewnij się, że plik jest ustawiony Zapisz według typu Dla mnie Pliki rejestru (*.reg).
- Na koniec, przed kliknięciem zapisaćUpewnij się, że ustawiłeś Zakres eksportu Dla mnie Konkretna gałąź I czy podano właściwą gałąź.
- dotknij zapisać Aby dokończyć proces tworzenia kopii zapasowej.
- Po zakończeniu tworzenia kopii zapasowej zmień nazwę klucza powodującego problem i usuń nawiasy kwadratowe.
Ogłoszenie: Wartość musi się zmienić Przewodnik maszynowy من {xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} Dla mnie xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. - Po zastosowaniu tej zmiany zamknij Edytor rejestru, uruchom ponownie komputer, a następnie uruchom usługę SQL. Ważny: Jeśli usługa nie uruchomi się od razu, odinstaluj i zainstaluj ponownie SQL przed ponownym uruchomieniem. Jeśli pojawi się inny błąd, przywróć oryginalną kopię zapasową utworzoną w kroku 8 i przejdź do kolejnej metody poniżej.
6. Modyfikuj przypisania użytkowników
Jeśli podczas próby pobrania danych z serwera SQL Server za pomocą ASP.NET pojawi się błąd „NT AUTHORITY/LOCAL SERVICE cannot be found”, szybkim sposobem naprawienia lokalnej przyczyny jest modyfikacja mapowania użytkowników na prawidłowe wartości.
Uwaga: Ta poprawka sprawdzi się w przypadku, gdy używasz lokalnej bazy danych dla programu SQL Server Management Studio i próbujesz wprowadzić do niej dane przy użyciu aplikacji ASP.NET.
Jeśli dokładnie sprawdziłeś dane wejściowe i cały kod jest poprawny, ale nadal pojawia się błąd, postępuj zgodnie z poniższymi instrukcjami, aby za pomocą programu SQL Server Management Studio uzyskać dostęp do strony logowania i zmodyfikować aktualnie przypisane mapowania użytkowników z ekranu Właściwości.
Oto krótki przewodnik krok po kroku, jak to zrobić:
- Naciśnij klawisz Start na klawiaturze, a następnie wpisz „SMS-yNa stronie startowej.
- Z listy wyników wybierz Studio zarządzania Microsoft SQL Server.
- Następnie zaloguj się na serwerze, który powoduje błąd „NT AUTHORITY/LOCAL SERVICE cannot be found”.
- Iść do BezpieczeństwoNastępnie wejdź do podsekcji Logowania.
- W menu opcji kliknij prawym przyciskiem myszy NT USŁUGA SIECI AUTORYTACYJNEJ أو Władze Terytorium PółnocnegoUSŁUGA LOKALNA (W zależności od scenariusza użytkowania) i kliknij Właściwości z menu kontekstowego.
- Po wejściu na ekran Właściwości logowania, Wybierać Mapowania użytkowników Z lewego górnego rogu ekranu.
- Po prawej stronie zobaczysz listę Role bazy danychUpewnij się, że pole wyboru jest zaznaczone. właściciel bazy danych, a następnie dotknij OK.
- Uruchom ponownie kod, który wcześniej powodował problem i sprawdź, czy problem został rozwiązany.
7. Nadaj uprawnienia administratora systemu (jeśli dotyczy)
Jeżeli ten błąd pojawi się podczas próby uzyskania dostępu do bazy danych dla lokalnie utworzonej aplikacji, pierwszą rzeczą, jaką należy sprawdzić, jest to, czy bieżąca konfiguracja pozwala usłudze NT AUTHORITY/LOCAL SERVICE na działanie w ramach roli sysadmin.
Można to zrobić, otwierając program Microsoft SQL Server Management Studio i modyfikując właściwości usługi NT AUTHORITY/LOCAL, aby włączyć rolę sysadmin.
Oto krótki przewodnik, jak to zrobić:
- naciśnij klawisz . Początek Następnie wpisz na klawiaturze „SMS-yNa stronie startowej.
- Z listy wyników wybierz Studio zarządzania Microsoft SQL Server.
- Następnie przejdź do الأمان Rozwiń listę Login.
- Kliknij prawym przyciskiem myszy NT AUTHORITY/System lokalny Następnie kliknij ا z menu kontekstowego.
- Na ekranie właściwości kliknij Role służebne Z lewego paska bocznego.
- Przejdź na prawą stronę i upewnij się, że pole z nim powiązane jest zaznaczone. sysadmin.
- Zapisz zmiany, uruchom ponownie urządzenie i sprawdź, czy problem został rozwiązany.
Jeśli z jakiegoś powodu nie możesz uzyskać dostępu do programu Microsoft SQL Server Management Studio, możesz również zastosować tę poprawkę z wiersza poleceń z uprawnieniami administratora (o ile pozwalają na to Twoje uprawnienia dostępu).
Oto jak to zrobić:
- naciśnij klawisz . Windows + R Aby otworzyć okno dialogowe zatrudnienie.
Następnie napisz „cmd” i naciśnij Ctrl + Shift + Enter Otworzyć Edytor rejestru Z uprawnieniami administratora.
- Kiedy pojawi się roszczenie Kontrola konta użytkownika (UAC), Kliknij نعم Nadanie uprawnień administratora.
- W wierszu poleceń uruchomionym z podwyższonymi uprawnieniami wpisz poniższe polecenie (i zmodyfikuj symbol zastępczy), aby uzyskać dostęp do konkretnego serwera powodującego problem:
sqlcmd -S (*nazwa serwera*)
Uwaga: Pamiętaj, aby zmienić *nazwę serwera* na rzeczywistą nazwę serwera w Twoim przypadku.
- Następnie wpisz poniższe polecenie i naciśnij Enter Wchodzę Aby uzyskać dostęp do serwera SQL na swoim komputerze:
wybierz nazwę z sys.server_principals, gdzie nazwa = 'NT AUTHORITYSYSTEM'
- Następnie wpisz poniższe polecenie, aby pobrać wynik i użyć go w Procedura sortowania Gdzie zostaną dodane prawa sysmin Do niej:
SP_ADDSRVROLEMEMBER 'NT AUTHORITYSYSTEM','SYSADMIN'
- Po pomyślnym rozwiązaniu obu problemów zamknij okno wiersza poleceń (CMD) i powtórz procedurę, która spowodowała błąd „NT AUTHORITY/LOCAL SERVICE cannot be found”.
8. Zmień język serwera na angielski (jeśli dotyczy)
Jeśli podczas korzystania z programu Advanced Installer do wywołania usługi NT AUTHORITY/LOCAL SERVICE pojawi się błąd „Nie można znaleźć usługi NT AUTHORITY/LOCAL SERVICE”, błąd ten może być objawem błędu wpływającego na serwery zewnętrzne.
Problem ten pojawia się, gdy niektórzy użytkownicy programu Advanced Installer próbują ręcznie uruchomić usługę XUA Automation Server za pośrednictwem ekranu Usługi lub gdy próbują uruchomić ją ręcznie, wpisując wyłącznie nazwę użytkownika (bez uwierzytelniania NT).
Uwaga: Ten problem występuje, ponieważ SCM nie obsługuje lokalnie tłumaczonych nazw, mimo że podsystem zabezpieczeń je tłumaczy. Chociaż otrzymasz lokalnie przetłumaczoną nazwę dla swojego konta na serwerze zewnętrznym, konto musi mieć atrybut NT AUTHORITYLocalService podczas korzystania z funkcji takich jak CreateService lub ChangeServiceConfig.
Jeśli ten scenariusz ma zastosowanie, jedynym rozwiązaniem jest na razie użycie angielskiej wersji konwencji nazewnictwa.
Dlatego zamiast używać poleceń w języku lokalnego serwera (takich jak AUTORITE NTSERVICE LOCAL), należy używać ich angielskiego odpowiednika (NT AUTHORITYLocalService).
Możliwość dodawania komentarzy nie jest dostępna.