Problem
- Pojawia się błąd "Wystąpił błąd podczas ładowania plików bazy danych z baz danych Microsoft SQL Server. Sprawdź, czy konto "NT AUTHORITY\SYSTEM" ma wystarczające uprawnienia do odczytu danych z widoków systemowych głównych baz danych" w produkcie ESET Windows Server
- Podczas pobierania niestandardowej lokalizacji danych bazy danych pojawia się błąd
- Włącz usługę ESET, aby uzyskać niestandardową lokalizację danych bazy danych
- Wiele instancji Microsoft SQL Server na jednym serwerze
Rozwiązanie
Pojawia się błąd podczas pobierania niestandardowej lokalizacji danych bazy danych
Automatyczne wykluczenia dla Microsoft SQL Server składają się głównie z domyślnych lokalizacji plików bazy danych. Jednak składa się również ze ścieżek, w których pliki bazy danych są przechowywane w niestandardowych lokalizacjach. W takim przypadku konto NT AUTHORITY\SYSTEM musi mieć odpowiednie uprawnienia, aby wyodrębnić te informacje z głównej bazy danych.
W Microsoft SQL Server 2016 i nowszych Microsoft usunął rolę serwera sysadmin dla konta NT AUTHORITY\SYSTEM, powodując, że produkty serwerowe ESET Windows tracą dostęp do danych w głównej bazie danych, która zawiera lokalizacje danych bazy danych instancji Microsoft SQL Server.
Produkty serwerowe ESET Windows informują o tym problemie za pomocą komunikatu o błędzie. Kliknij Pliki dziennika, wybierz Zdarzenia z menu rozwijanego i wyświetl komunikat o błędzie:
"Wystąpił błąd podczas ładowania plików bazy danych z baz danych Microsoft SQL Server. Sprawdź, czy konto "NT AUTHORITY\SYSTEM" ma wystarczające uprawnienia do odczytu danych z widoków systemowych głównych baz danych"
Kliknij obraz, aby powiększyć w nowym oknie
Włącz usługę ESET, aby uzyskać niestandardową lokalizację danych bazy danych
Aby włączyć naszą usługę w celu uzyskania niestandardowej lokalizacji danych bazy danych, należy wykonać jedną z trzech poniższych procedur przy użyciu Microsoft SQL Server Management Studio:
- Nadanie uprawnień "Wyświetl dowolną definicję" kontu NT AUTHORITY\SYSTEM (zalecane)
- Przyznać rolę serwera "sysadmin" do konta NT AUTHORITY\SYSTEM
- Przypisać rolę bazy danych 'db_owner' do bazy danych 'master' na koncie NT AUTHORITY\SYSTEM
A. Przyznanie uprawnień "Wyświetl dowolną definicję" do konta NT AUTHORITY\SYSTEM (zalecane)
-
Przejdź do Microsoft SQL Server Management Studio i połącz się z wybraną instancją Microsoft SQL Server.
-
Kliknij Securables. W kolumnie Grant zaznacz pole wyboru obok View any definition. Kliknij OK.
Rysunek 2-1
B. Przyznanie roli serwera "sysadmin" do konta NT AUTHORITY\SYSTEM
-
Przejdź do Microsoft SQL Server Management Studio i połącz się z wybraną instancją Microsoft SQL Server.
-
Kliknij Role serwera, zaznacz pole wyboru obok sysadmin i kliknij OK.
Rysunek 2-2
C. Przypisanie roli bazy danych "db_owner" do bazy danych "master" na koncie NT AUTHORITY\SYSTEM
-
Przejdź do Microsoft SQL Server Management Studio i połącz się z wybraną instancją Microsoft SQL Server.
-
Kliknij Mapowanie użytkowników. W sekcji Użytkownicy zmapowani do tego loginu zaznacz pole wyboru obok master. W sekcji Database role membership for zaznacz pole wyboru obok db_owner. Kliknij OK.
Rysunek 2-3
Wiele instancji MS SQL Server na jednym serwerze
Można połączyć się z konkretną instancją Microsoft SQL Server za pomocą okna dialogowego połączenia wyświetlanego po uruchomieniu Microsoft SQL Server Management Studio:
-
Przejdź do Microsoft SQL Server Management Studio i połącz się z wybranym serwerem.
- Wpisz instancję w polu Server name w poniższym formacie i kliknij Connect.
<nazwa_serwera>\<nazwa_instancji>
Rysunek 3-1
Uzyskanie listy instancji Microsoft SQL Server
Istnieje kilka sposobów na uzyskanie listy instancji Microsoft SQL Server zainstalowanych na serwerze:
-
Podczas instalacji nowej instancji Microsoft SQL Server, w kroku, w którym wpisujemy nazwę nowej instancji, Kreator instalacji wyświetli listę aktualnie zainstalowanych instancji.
-
Lista zainstalowanych instancji znajduje się w następującej ścieżce rejestru Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names.Aby uzyskać listę, należy użyć następującego polecenia PowerShell:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" | % {$_.Property} -
Każda instancja Microsoft SQL Server instaluje odpowiednią usługę w systemie. Nazwa tej usługi ma następujący format:
SQL Server (<nazwa_instancji>)Możesz filtrować te usługi w systemie, aby uzyskać listę zainstalowanych instancji Microsoft Server SQL za pomocą następującego polecenia PowerShell:Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }