Problem
- Du modtager fejlen "Der opstod en fejl under indlæsning af databasefiler fra Microsoft SQL Server-databaser. Kontroller, om kontoen 'NT AUTHORITY\SYSTEM' har tilstrækkelige tilladelser til at læse data fra systemvisninger af masterdatabaser" i ESET Windows-serverproduktet
- Der vises en fejl, når den brugerdefinerede placering af databasedata hentes
- Aktivér ESET-tjenesten for at få den brugerdefinerede placering af databasedata
- Flere Microsoft SQL Server-instanser på en enkelt server
Løsning
Der opstår en fejl, når den brugerdefinerede placering af databasedata hentes
Automatiske udelukkelser for Microsoft SQL Server består hovedsageligt af standardplaceringer af databasefiler. Men de består også af stier, hvor databasefiler er gemt på brugerdefinerede placeringer. I dette tilfælde skal NT AUTHORITY\SYSTEM-kontoen
have passende rettigheder til at udtrække disse oplysninger fra master-databasen.
I Microsoft SQL Server 2016 og senere fjernede Microsoft sysadmin-serverrollen for NT AUTHORITY\SYSTEM-kontoen, hvilket fik ESET Windows-serverprodukter til at miste adgangen til dataene i masterdatabasen, som indeholder placeringen af databasedataene i Microsoft SQL Server-instansen.
ESET Windows-serverprodukter informerer om dette problem via fejlmeddelelsen. Klik på Logfiler, vælg Hændelser i rullemenuen, og se fejlmeddelelsen:
"Der opstod en fejl under indlæsning af databasefiler fra Microsoft SQL Server-databaserne. Kontrollér, om kontoen 'NT AUTHORITY\SYSTEM' har tilstrækkelige tilladelser til at læse data fra master-databasernes systemvisninger."

Klik på billedet for at se det større i et nyt vindue
Aktivér ESET-tjenesten til at hente den brugerdefinerede placering af databasedata
Følg en af de tre nedenstående procedurer i Microsoft SQL Server Management Studio for at gøre det muligt for vorestjeneste at hente den brugerdefinerede placering af databasedata:
- Giv NT AUTHORITY\SYSTEM-kontoen tilladelsen "View any definition" (anbefales)
- Giv serverrollen 'sysadmin' til NT AUTHORITY\SYSTEM-kontoen
- Tildel database-rollen 'db_owner' til 'master'-databasen i NT AUTHORITY\SYSTEM-kontoen
A. Giv tilladelsen 'View any definition' til NT AUTHORITY\SYSTEM-kontoen (anbefales)
Naviger til Microsoft SQL Server Management Studio, og opret forbindelse til den valgte Microsoft SQL Server-forekomst.
Klik på Securables. I kolonnen Grant skal du markere afkrydsningsfeltet ved siden af View any definition. Klik på OK.
Figur 2-1
B. Tildel serverrollen 'sysadmin' til NT AUTHORITY\SYSTEM-kontoen
Naviger til Microsoft SQL Server Management Studio, og opret forbindelse til den valgte Microsoft SQL Server-forekomst.
Klik på Server Roles, marker afkrydsningsfeltet ud for sysadmin, og klik på OK.
Figur 2-2
C. Tildel database-rollen 'db_owner' til 'master'-databasen i NT AUTHORITY\SYSTEM-kontoen
Naviger til Microsoft SQL Server Management Studio, og opret forbindelse til den valgte Microsoft SQL Server-forekomst.
Klik på Brugertilknytning. I afsnittet Users mapped to this login skal du markere afkrydsningsfeltet ved siden af master. I afsnittet Database role membership for skal du markere afkrydsningsfeltet ud for db_owner. Klik på OK.
Figur 2-3
Flere MS SQL Server-forekomster på en enkelt server
Du kan oprette forbindelse til en bestemt forekomst af Microsoft SQL Server ved hjælp af den forbindelsesdialog, der vises, når du starter Microsoft SQL Server Management Studio:
Naviger til Microsoft SQL Server Management Studio, og opret forbindelse til den valgte server.
- Indtast forekomsten i feltet Servernavn i nedenstående format, og klik på Opret forbindelse.
<server_navn>\<instans_navn>
Figur 3-1
Hent listen over Microsoft SQL Server-forekomster
Der er flere måder at få en liste over de Microsoft SQL Server-forekomster, der er installeret på serveren:
Når du installerer en ny forekomst af Microsoft SQL Server, vil installationsguiden i det trin, hvor du skriver navnet på den nye forekomst, vise en liste over aktuelt installerede forekomster.
Listen over installerede forekomster findes i følgende sti i Windows-registreringsdatabasen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names
Brug følgende PowerShell-kommando til at hente listen:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" | % {$_.Property}
Hver Microsoft SQL Server-forekomst installerer den tilsvarende tjeneste i systemet. Navnet på denne tjeneste har følgende format:
SQL Server (<instansnavn>)
Du kan filtrere disse tjenester i systemet for at få en liste over installerede Microsoft Server SQL-forekomster ved hjælp af følgende PowerShell-kommando:
Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }