Problem
- Sie erhalten die Fehlermeldung "Beim Laden von Datenbankdateien aus den Microsoft SQL Server-Datenbanken ist ein Fehler aufgetreten. Überprüfen Sie, ob das Konto 'NT AUTHORITY\SYSTEM' über ausreichende Berechtigungen verfügt, um Daten aus den Systemansichten von Master-Datenbanken zu lesen" im ESET Windows Server-Produkt
- Beim Abrufen des benutzerdefinierten Speicherorts von Datenbankdaten wird ein Fehler angezeigt
- Aktivieren Sie den ESET-Dienst, um den benutzerdefinierten Speicherort der Datenbankdaten abzurufen
- Mehrere Microsoft SQL Server-Instanzen auf einem einzigen Server
Lösung
Beim Abrufen des benutzerdefinierten Speicherorts von Datenbankdaten tritt ein Fehler auf
Automatische Ausschlüsse für Microsoft SQL Server bestehen hauptsächlich aus Standardspeicherorten von Datenbankdateien. Es gibt jedoch auch Pfade, in denen Datenbankdateien an benutzerdefinierten Speicherorten gespeichert sind. In diesem Fall muss das NT AUTHORITY\SYSTEM-Konto über entsprechende Rechte verfügen, um diese Informationen aus der Master-Datenbank zu extrahieren.
In Microsoft SQL Server 2016 und später hat Microsoft die Sysadmin-Serverrolle für das NT AUTHORITY\SYSTEM-Konto entfernt, wodurch ESET Windows Serverprodukte den Zugriff auf die Daten in der Master-Datenbank verlieren, die die Speicherorte der Datenbankdaten der Microsoft SQL Server-Instanz enthält.
ESET Windows Server-Produkte informieren über dieses Problem durch eine Fehlermeldung. Klicken Sie auf Protokolldateien, wählen Sie Ereignisse aus dem Dropdown-Menü, und sehen Sie sich die Fehlermeldung an:
"Beim Laden von Datenbankdateien aus den Microsoft SQL Server-Datenbanken ist ein Fehler aufgetreten. Überprüfen Sie, ob das Konto 'NT AUTHORITY\SYSTEM' über ausreichende Berechtigungen zum Lesen von Daten aus den Systemansichten der Master-Datenbanken verfügt."
Klicken Sie auf das Bild, um es in einem neuen Fenster zu vergrößern
Aktivieren des ESET-Dienstes zum Abrufen des benutzerdefinierten Speicherorts der Datenbankdaten
Um unseren Dienst zu aktivieren, damit er den benutzerdefinierten Speicherort der Datenbankdaten abrufen kann, führen Sie eine der drei folgenden Prozeduren mit Microsoft SQL Server Management Studio aus:
- Erteilen Sie dem NT-Konto AUTHORITY\SYSTEM die Berechtigung "View any definition" (empfohlen)
- Gewähren Sie dem NT-AUTHORITY\SYSTEM-Konto die Serverrolle "sysadmin"
- Weisen Sie die Datenbankrolle "db_owner" der Datenbank "master" im NT AUTHORITY\SYSTEM-Konto zu
A. Erteilen Sie dem NT-AUTHORITY\SYSTEM-Konto die Berechtigung "View any definition" (empfohlen)
-
Navigieren Sie zu Microsoft SQL Server Management Studio und verbinden Sie sich mit der ausgewählten Microsoft SQL Server-Instanz.
-
Klicken Sie auf Securables. Aktivieren Sie in der Spalte Berechtigung das Kontrollkästchen neben Jede Definition anzeigen. Klicken Sie auf OK.
Abbildung 2-1
B. Gewähren Sie dem NT AUTHORITY\SYSTEM-Konto die Serverrolle "sysadmin"
-
Navigieren Sie zu Microsoft SQL Server Management Studio und verbinden Sie sich mit der gewählten Microsoft SQL Server-Instanz.
-
Klicken Sie auf Server-Rollen, aktivieren Sie das Kontrollkästchen neben sysadmin und klicken Sie auf OK.
Abbildung 2-2
C. Weisen Sie die Datenbankrolle "db_owner" der Datenbank "master" im NT AUTHORITY\SYSTEM-Konto zu
-
Navigieren Sie zu Microsoft SQL Server Management Studio und verbinden Sie sich mit der gewählten Microsoft SQL Server-Instanz.
-
Klicken Sie auf Benutzerzuordnung. Aktivieren Sie im Abschnitt Users mapped to this login das Kontrollkästchen neben master. Aktivieren Sie im Abschnitt Database role membership for das Kontrollkästchen neben db_owner. Klicken Sie auf OK.
Abbildung 2-3
Mehrere MS SQL Server-Instanzen auf einem einzigen Server
Sie können eine Verbindung zu einer bestimmten Instanz von Microsoft SQL Server herstellen, indem Sie den Verbindungsdialog verwenden, der beim Start von Microsoft SQL Server Management Studio angezeigt wird:
-
Navigieren Sie zu Microsoft SQL Server Management Studio und verbinden Sie sich mit dem gewünschten Server.
- Geben Sie die Instanz in das Feld Servername im untenstehenden Format ein und klicken Sie auf Verbinden.
<Servername><Instanzname>
Abbildung 3-1
Abrufen der Liste der Microsoft SQL Server-Instanzen
Es gibt mehrere Möglichkeiten, die Liste der auf dem Server installierten Microsoft SQL Server-Instanzen abzurufen:
-
Wenn Sie eine neue Instanz von Microsoft SQL Server installieren, zeigt der Installationsassistent in dem Schritt, in dem Sie den Namen der neuen Instanz eingeben, eine Liste der derzeit installierten Instanzen an.
-
Die Liste der installierten Instanzen befindet sich im folgenden Windows-Registrierungspfad:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance NamesUm die Liste abzurufen, verwenden Sie den folgenden PowerShell-Befehl:
Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instanznamen\SQL" | % {$_.Property} -
Jede Microsoft SQL Server-Instanz installiert den entsprechenden Dienst im System. Der Name dieses Dienstes hat das folgende Format:
SQL Server (<Instanzname>)Sie können diese Dienste im System filtern, um eine Liste der installierten Microsoft Server-SQL-Instanzen mit dem folgenden PowerShell-Befehl zu erhalten:Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }