Überwachung mit geringen Rechten
Alle Workflows (Entdeckungen, Regeln, Monitore und Aktionen) in diesem Management Pack sind mit Ausführenden Profilen verknüpft.
Um eine Überwachung mit geringen Rechten zu ermöglichen, erteilen Sie den Ausführenden Konten die entsprechenden Berechtigungen und verknüpfen Sie diese Konten mit den entsprechenden ausführenden Profilen.
Hinweis
Der Monitor Virtuelle Protokolldateien-Anzahl (VLF) unterstützt keine Überwachung mit niedrigen Rechten auf SQL Server 2012 und 2014.
Erstellen von Active Directory-Konten
Erstellen Sie in Active Directory die folgenden Benutzenden für den Zugriff mit geringen Rechten auf die SQL Server-Zielinstanzen:
- SQLTaskAction
- SQLDiscovery
- SQLMonitor
Erstellen Sie die Domänengruppe SQLMPLowPriv und fügen Sie die folgenden Benutzenden der Domäne zu dieser Gruppe hinzu:
- SQLDiscovery
- SQLMonitor
Fügen Sie der Active Directory-Sicherheitsgruppe Schreibgeschützte Domänencontroller die Gruppe SQLMPLowPriv hinzu.
Agent-Überwachung
In diesem Abschnitt wird erläutert, wie Sie die Agent-Überwachung mit geringen Rechten konfigurieren.
Über Agenten
Gewähren Sie dem SQLTaskAction-Benutzer und der SQLMPLowPriv-Gruppe die Leseberechtigung für den Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server
Erteilen Sie in jeder überwachten Instanz der SQLMPLowPriv-Gruppe die Leseberechtigung für den Registrierungsschlüssel:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\[InstanceID]\MSSQLServer\Parameters
Fügen Sie die SQLTaskAction- und SQLMonitor-Benutzer der lokalen Active Directory-Gruppe Ereignisprotokollleser hinzu.
Erteilen Sie SQLTaskAction und SQLMPLowPriv die Berechtigungen Methoden ausführen, Konto aktivieren, Remoteaktivierung und Sicherheit lesen mit dem WMI-Steuerelement für die folgenden WMI-Namespaces:
- ROOT
- Root\CIMV2
- ROOT\DEFAULT
- ROOT\Microsoft\SqlServer\ComputerManagement11 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement12 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement13 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement14 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement15 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement16 (falls vorhanden)
Konfigurieren Sie die lokale Sicherheitsrichtlinie Anmeldung lokal zulassen, um dem SQLTaskAction-Benutzenden und den Benutzenden der Domänengruppe SQLMPLowPriv die lokale Anmeldung zu ermöglichen.
Hinweis
Wenn Sie System Center Operations Manager 2016 verwenden, führen Sie die oben aufgeführten Schritte aus, um die Berechtigung "Anmelden lokal zulassen" für "Als Konten ausführen" bereitzustellen. Weitere Informationen
Konfigurieren Sie die lokale Sicherheitsrichtlinie Als Dienst anmelden, um dem SQLTaskAction-Benutzenden und der Domänengruppe SQLMPLowPriv zu erlauben, sich als Dienst anzumelden.
Hinweis
Wenn Sie System Center Operations Manager 2019 oder höher verwenden, führen Sie die oben genannten Schritte aus, um die Berechtigung "Anmelden als Dienst" für "Als Konten ausführen" bereitzustellen. Weitere Informationen
Legen Sie in den Microsoft Monitoring Agent-Eigenschaften für die ausgewählte Verwaltungsgruppe das Lokales System-Konto für die Durchführung von Agent-Aktionen fest.
Zusätzliche Schritte für Cluster-SQL-Server-Instanzen
Führen Sie die oben genannten Schritte für jeden Clusterknoten durch.
Erteilen Sie SQLMPLowPriv und SQLTaskAction die DCOM-Berechtigungen "Remotestart" und "Remoteaktivierung DCOM" mithilfe von DCOMCNFG.
Lassen Sie die Windows-Remoteverwaltung durch die Windows-Firewall zu.
Gewähren Sie dem Cluster mit dem Failovercluster-Manager die Gruppe SQLMPLowPrivFull Control.
Erteilen Sie SQLTaskAction und SQLMPLowPriv die Berechtigungen Methoden ausführen, Konto aktivieren, Remoteaktivierung und Sicherheit lesen mit dem WMI-Steuerelement für den WMI-Namespace root\MSCluster.
Über SQL Server-Instanzen
Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zur SQL Server Database Engine-Instanz her.
Verwenden Sie in SQL Server Management Studio für jede Instanz der SQL Server-Datenbank-Engine, die auf einem überwachten Server ausgeführt wird, das folgende SQL-Skript zum Erstellen und Festlegen der Konfiguration mit den niedrigsten Berechtigungen für das SQLMPLowPriv-Domänenkonto:
USE [master]; SET NOCOUNT ON; /*The domain account that System Center Operations Manager will use to access the SQL Server instance*/ DECLARE @accountname sysname = '<domainName>\<login_name>'; /*In some cases, administrators change the 'sa' account default name. This will retrieve the name of the account associated to princicpal_id = 1*/ DECLARE @sa_name sysname = 'sa'; SELECT @sa_name = [name] FROM sys.server_principals WHERE principal_id = 1 /*Create the server role with authorization to the account associated to principal id = 1. Create the role only if it does not already exist*/ DECLARE @createSrvRoleCommand nvarchar(200); SET @createSrvRoleCommand = 'IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE [name] = ''SCOM_SQLMPLowPriv'') BEGIN CREATE SERVER ROLE [SCOM_SQLMPLowPriv] AUTHORIZATION [' + @sa_name + ']; END' EXEC(@createSrvRoleCommand); GRANT VIEW ANY DATABASE TO [SCOM_SQLMPLowPriv]; GRANT VIEW ANY DEFINITION TO [SCOM_SQLMPLowPriv]; GRANT VIEW SERVER STATE TO [SCOM_SQLMPLowPriv]; DECLARE @createLoginCommand nvarchar(200); SET @createLoginCommand = 'IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE [name] = '''+ @accountname +''') BEGIN CREATE LOGIN '+ QUOTENAME(@accountname) +' FROM WINDOWS WITH DEFAULT_DATABASE=[master]; END' EXEC(@createLoginCommand); -- Add the login to the user-defined server role DECLARE @addServerMemberCommand nvarchar(200); SET @addServerMemberCommand = 'ALTER SERVER ROLE [SCOM_SQLMPLowPriv] ADD MEMBER ' + QUOTENAME(@accountname) + ';' EXEC(@addServerMemberCommand); -- Add the login and database role to each database DECLARE @createDatabaseUserAndRole nvarchar(max); SET @createDatabaseUserAndRole = ''; SELECT @createDatabaseUserAndRole = @createDatabaseUserAndRole + ' USE ' + QUOTENAME(db.name) + '; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [name] = '''+ @accountname +''') BEGIN CREATE USER ' + QUOTENAME(@accountname) + ' FOR LOGIN ' + QUOTENAME(@accountname) + '; END; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [name] = ''SCOM_SQLMPLowPriv'') BEGIN CREATE ROLE [SCOM_SQLMPLowPriv] AUTHORIZATION [dbo]; END; ALTER ROLE [SCOM_SQLMPLowPriv] ADD MEMBER ' + QUOTENAME(@accountname) + ';' FROM sys.databases db LEFT JOIN sys.dm_hadr_availability_replica_states hadrstate ON db.replica_id = hadrstate.replica_id WHERE db.database_id <> 2 AND db.user_access = 0 AND db.state = 0 AND db.is_read_only = 0 AND (hadrstate.role = 1 or hadrstate.role is null); EXEC(@createDatabaseUserAndRole); -- Add database specific permissions to database role USE [master]; GRANT EXECUTE ON sys.xp_readerrorlog TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON sys.xp_instance_regread TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [sys].[indexes] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [sys].[tables] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [sys].[dm_db_index_physical_stats] TO [SCOM_SQLMPLowPriv]; USE [msdb]; GRANT SELECT ON [dbo].[sysjobschedules] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysschedules] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[syscategories] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobs_view] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobactivity] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobhistory] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[syssessions] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_primary_databases] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_secondary_databases] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_history_detail] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_secondary] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_primary] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[sp_help_job] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[agent_datetime] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[SQLAGENT_SUSER_SNAME] TO [SCOM_SQLMPLowPriv]; ALTER ROLE [SQLAgentReaderRole] ADD MEMBER [SCOM_SQLMPLowPriv];
Über SMB-Freigaben
Gewähren Sie Freigabeberechtigungen, indem Sie das Dialogfeld „Eigenschaften der Freigabe“ für die Freigabe öffnen, die SQL Server-Datendateien oder SQL Server-Transaktionsprotokolldateien enthält.
Erteilen Sie die Berechtigung Lesen an SQLMPLowPriv.
Erteilen Sie NTFS-Berechtigungen, indem Sie den Eigenschaften-Dialog für den gemeinsamen Ordner öffnen und zur Registerkarte Sicherheit navigieren.
Erteilen Sie die Berechtigung Lesen an SQLMPLowPriv.
Optionale Schritte für Aufgaben für Agents
Einige optionale System Center Operations Manager-Aufgaben erfordern eine höhere Berechtigung auf einem Agentcomputer und/oder einer Datenbank, um die Ausführung der Aufgabe zu ermöglichen.
Führen Sie die folgenden Schritte auf einem Agentcomputer oder einer Datenbank nur dann aus, wenn Sie dem Bediener der System Center Operations Manager-Konsole erlauben möchten, Abhilfemaßnahmen zu ergreifen:
Wenn die Aufgabe mit dem Starten oder Stoppen eines NT-Dienstes (z. B. DB Engine Service, SQL Server Agent Service, SQL Full Text Search Service, Integration Dienst) zusammenhängt, erteilen Sie auf dem Agentcomputer dem Benutzenden SQLTaskAction die Berechtigung, einen NT-Dienst zu starten oder zu stoppen. Dazu muss ein Sicherheits-Dienstdeskriptor festgelegt werden. Weitere Informationen finden Sie unter Sc sdset.
Lesen Sie die vorhandenen Berechtigungen für den angegebenen Dienst mit sc sdshow und gewähren Sie dem Benutzenden SQLTaskAction zusätzliche Berechtigungen.
Wenn zum Beispiel die Ergebnisse des Befehls sdshow für den SQL Server-Dienst wie folgt lauten:
*D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)*
In diesem Fall gewährt der folgende Befehl ausreichenden Zugriff auf SQLTaskAction zum Starten und Stoppen des SQL Serverdienstes. Ersetzen Sie „SQLServerServiceName“ und „SID for SQLTaskAction“ durch die entsprechenden Werte und halten Sie alles in einer einzigen Zeile.
*sc sdset SQLServerServiceName D:(A;;GRRPWP;;;SID for SQLTaskAction)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)*
Erstellen Sie in SQL Server Management Studio für jede Instanz der SQL Server-Datenbank-Engine auf einem überwachten Server eine Anmeldung für SQLTaskAction:
USE [msdb]; CREATE USER [SQLTaskAction] FOR LOGIN [SQLTaskAction];
Gewähren Sie die Datenbankrolle db_owner für jede Datenbank, wenn die Aufgabe mit der Durchführung von Datenbanküberprüfungen zusammenhängt:
- Katalog überprüfen (DBCC)
- Datenbank überprüfen (DBCC)
- Datenträger überprüfen (DBCC) (ruft „DBCC CHECKALLOC“ auf)
USE [yourdatabase]; ALTER ROLE [db_owner] ADD MEMBER [SQLTaskAction];
Erteilen Sie der Anmeldung SQLTaskAction die Berechtigung ALTER ANY DATABASE, wenn die Aufgabe mit der Änderung des Datenbankstatus zusammenhängt:
- Datenbank offline schalten
- Datenbank online schalten
- Datenbank in den Notfallzustand schalten
USE [master]; GRANT ALTER ANY DATABASE TO [SQLTaskAction];
Im System Center Operations Manager
Erstellen Sie die folgenden Windows-basierten ausführenden Konten:
- SQLTaskAction
- SQLDiscovery
- SQLMonitor
Konfigurieren Sie in der Konsole vom System Center Operations Manager die ausführenden Profile wie folgt:
- Legen Sie das Microsoft SQL Server Task Ausführendes Profil fest, um das SQLTaskAction Ausführendes Konto zu verwenden.
- Legen Sie das Microsoft SQL Server Discovery Ausführendes Profil fest, um das SQLDiscovery Ausführendes Konto zu verwenden.
- Legen Sie das Microsoft SQL Server Monitoring Ausführendes Profil fest, um das SQLMonitor Ausführende Konto zu verwenden.
Um Probleme bei der SQL Server-Überwachung zu vermeiden, verwenden Sie die ausführenden Konten SQLTaskAction, SQLDiscovery und SQLMonitor zur Verwaltung des Ziels als Windows-Computer-Objekt.
Überwachung ohne Agent
[Anwendbar auf SQL Server unter Windows und Linux]
In diesem Abschnitt wird erläutert, wie Sie die agentenlose Überwachung mit geringen Rechten konfigurieren.
Über SQL Server-Instanzen
Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zur SQL Server Database Engine-Instanz her.
Verwenden Sie in SQL Server Management Studio für jede Instanz von SQL Server Datenbank-Engine, die auf einem überwachten Server ausgeführt wird, das folgende SQL-Skript, um die niedrigste Berechtigungskonfiguration für das SQLMPLowPriv-Konto mit Active Directory-Authentifizierung zu erstellen und festzulegen:
USE [master]; SET NOCOUNT ON; /*The user account with SQL Server authentication that System Center Operations Manager will use to access the SQL Server instance*/ DECLARE @accountname sysname = '<domainName>\<login_name>'; /*In some cases, administrators change the 'sa' account default name. This will retrieve the name of the account associated to princicpal_id = 1*/ DECLARE @sa_name sysname = 'sa'; SELECT @sa_name = [name] FROM sys.server_principals WHERE principal_id = 1 /*Create the server role with authorization to the account associated to principal id = 1. Create the role only if it does not already exist*/ DECLARE @createSrvRoleCommand nvarchar(200); SET @createSrvRoleCommand = 'IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE [name] = ''SCOM_SQLMPLowPriv'') BEGIN CREATE SERVER ROLE [SCOM_SQLMPLowPriv] AUTHORIZATION [' + @sa_name + ']; END' EXEC(@createSrvRoleCommand); GRANT VIEW ANY DATABASE TO [SCOM_SQLMPLowPriv]; GRANT VIEW ANY DEFINITION TO [SCOM_SQLMPLowPriv]; GRANT VIEW SERVER STATE TO [SCOM_SQLMPLowPriv]; DECLARE @createLoginCommand nvarchar(200); /*Create the login with SQL Server authentication using the password, and replace it with your value below*/ SET @createLoginCommand = 'IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE [name] = '''+ @accountname +''') BEGIN CREATE LOGIN '+ QUOTENAME(@accountname) +' FROM WINDOWS WITH DEFAULT_DATABASE=[master]; END' EXEC(@createLoginCommand); -- Add the login to the user-defined server role DECLARE @addServerMemberCommand nvarchar(200); SET @addServerMemberCommand = 'ALTER SERVER ROLE [SCOM_SQLMPLowPriv] ADD MEMBER ' + QUOTENAME(@accountname) + ';' EXEC(@addServerMemberCommand); -- Add the login and database role to each database DECLARE @createDatabaseUserAndRole nvarchar(max); SET @createDatabaseUserAndRole = ''; SELECT @createDatabaseUserAndRole = @createDatabaseUserAndRole + ' USE ' + QUOTENAME(db.name) + '; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [name] = '''+ @accountname +''') BEGIN CREATE USER ' + QUOTENAME(@accountname) + ' FOR LOGIN ' + QUOTENAME(@accountname) + '; END; IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE [name] = ''SCOM_SQLMPLowPriv'') BEGIN CREATE ROLE [SCOM_SQLMPLowPriv] AUTHORIZATION [dbo]; END; ALTER ROLE [SCOM_SQLMPLowPriv] ADD MEMBER ' + QUOTENAME(@accountname) + ';' FROM sys.databases db LEFT JOIN sys.dm_hadr_availability_replica_states hadrstate ON db.replica_id = hadrstate.replica_id WHERE db.database_id <> 2 AND db.user_access = 0 AND db.state = 0 AND db.is_read_only = 0 AND (hadrstate.role = 1 or hadrstate.role is null); EXEC(@createDatabaseUserAndRole); -- Add database specific permissions to database role USE [master]; GRANT EXECUTE ON sys.xp_readerrorlog TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON sys.xp_instance_regread TO [SCOM_SQLMPLowPriv]; USE [msdb]; GRANT SELECT ON [dbo].[sysjobschedules] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysschedules] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[syscategories] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobs_view] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobactivity] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[sysjobhistory] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[syssessions] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_primary_databases] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_secondary_databases] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_history_detail] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_secondary] TO [SCOM_SQLMPLowPriv]; GRANT SELECT ON [dbo].[log_shipping_monitor_primary] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[sp_help_job] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[agent_datetime] TO [SCOM_SQLMPLowPriv]; GRANT EXECUTE ON [dbo].[SQLAGENT_SUSER_SNAME] TO [SCOM_SQLMPLowPriv]; ALTER ROLE [SQLAgentReaderRole] ADD MEMBER [SCOM_SQLMPLowPriv];
Einige optionale System Center Operations Manager-Aufgaben erfordern eine höhere Berechtigung auf einem Agentcomputer und/oder einer Datenbank, um die Ausführung der Aufgabe zu ermöglichen.
Führen Sie die folgenden Schritte nur aus, wenn Sie dem Bediener der System Center Operations Manager-Konsole erlauben möchten, Abhilfemaßnahmen für dieses Ziel zu ergreifen:
Erstellen Sie in SQL Server Management Studio für jede Instanz der SQL Server-Datenbank-Engine auf einem überwachten Server eine Anmeldung für SQLTaskAction:
USE [msdb]; CREATE USER [SQLTaskAction] FOR LOGIN [SQLTaskAction];
Gewähren Sie die Datenbankrolle db_owner für jede Datenbank, wenn die Aufgabe mit der Durchführung von Datenbanküberprüfungen zusammenhängt:
- Katalog überprüfen (DBCC)
- Datenbank überprüfen (DBCC)
- Datenträger überprüfen (DBCC) (ruft „DBCC CHECKALLOC“ auf)
USE [yourdatabase]; ALTER ROLE [db_owner] ADD MEMBER [SQLTaskAction];
Erteilen Sie der Anmeldung SQLTaskAction die Berechtigung ALTER ANY DATABASE, wenn die Aufgabe mit der Änderung des Datenbankstatus zusammenhängt:
- Datenbank offline schalten
- Datenbank online schalten
- Datenbank in den Notfallzustand schalten
USE [master]; GRANT ALTER ANY DATABASE TO [SQLTaskAction];
Verwendung des Überwachungsassistenten
Um den Überwachungsmodus ohne Agenten mit geringen Rechten mithilfe des Überwachungsassistenten zu konfigurieren, führen Sie die Schritte aus, die im Abschnitt Konfigurieren des Überwachungsmodus ohne Agenten beschrieben sind, jedoch mit den folgenden Änderungen:
Wählen Sie im Fenster Assistent für die Überwachung hinzufügen die Option Instanzen hinzufügen.
Wählen Sie im Fenster Instanzen hinzufügen ein gängiges ausführendes Konto mit den entsprechenden SQL-Anmeldedaten mit geringen Rechten aus und geben Sie Datenquellen und/oder Verbindungszeichenfolgen an.
Zum Beispiel:
- 192.0.2.10; MachineName="Servername"; InstanceName="Instanzname"; Platform="Windows"
- 192.0.2.11,50626;MachineName="server-name";InstanceName="instance-name";Platform="Windows"
- 192.0.2.15; MachineName="Servername"; InstanceName="Instanzname"; Platform="Linux"
Sie können auch ein neues ausführendes Konto erstellen. Wählen Sie dazu im Fenster Instanzen hinzufügen die Option Neu, geben Sie einen neuen Namen für das ausführende Konto ein und geben Sie die Anmeldeinformationen für den Zugriff auf den SQL Server an, den Sie überwachen möchten.
Nachdem die Verbindung hergestellt wurde, können Sie die Eigenschaften der hinzugefügten Instanz anzeigen und bearbeiten.
Überwachung im gemischten Modus
Um die gemischte Überwachung im gemischten Modus mit niedrigen Rechten zu konfigurieren, führen Sie die im Abschnitt Agent-Überwachung beschriebenen Schritte aus und gehen wie folgt vor:
Gewähren Sie die Berechtigung, Informationen über die Dienste zu erhalten
Verwenden Sie einen Registrierungsschlüssel, um den Remotezugriff auf die Registrierung zu verwalten
Verwalten des Remotezugriffs auf WMI
Um die Sicherheit für Konfigurationen mit Konten mit geringen Rechten zu konfigurieren, führen Sie die folgenden Schritte auf jedem Überwachungsserver im gemischten Modus durch:
Starten Sie die Konsole mmc.exe und fügen Sie die folgenden Snap-Ins hinzu:
- Komponentendienste
- WMI-Steuerung (für einen lokalen Computer)
Erweitern Sie Komponentendienste, klicken Sie mit der rechten Maustaste auf Mein Computer, und wählen Sie Eigenschaften.
Öffnen Sie die Registerkarte COM-Sicherheit.
Wählen Sie im Abschnitt Start- und Aktivierungsberechtigungen die Option Grenzwerte bearbeiten.
Erteilen Sie dem Konto des Remotecomputers die folgenden Berechtigungen:
- Remotestart
- Remoteaktivierung
Gehen Sie zum Snap-In WMI- Steuerung und öffnen Sie dessen Eigenschaften.
Öffnen Sie die Registerkarte Sicherheit und wählen Sie die folgenden Namespaces aus:
- Root\CIMV2
- ROOT\Microsoft\SqlServer
- ROOT\Microsoft\SqlServer\ComputerManagement11 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement12 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement13 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement14 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement15 (falls vorhanden)
- ROOT\Microsoft\SqlServer\ComputerManagement16 (falls vorhanden)
Wählen Sie Sicherheit aus.
Erteilen Sie dem Zielcomputer die folgenden Berechtigungen:
- Konto aktivieren
- Remoteaktivierung
Wählen Sie Erweitertaus.
Wählen Sie das Zielkonto aus und wählen Sie Bearbeiten.
Wählen Sie in der Dropdownliste Gilt für die Option Nur dieser Namespace.
Aktivieren Sie im Abschnitt Berechtigungen die folgenden Kontrollkästchen:
- Konto aktivieren
- Remoteaktivierung
Erteilung von Dienstberechtigungen
Um Informationen über die Dienste zu erhalten, erteilen Sie die erforderlichen Berechtigungen gemäß den folgenden Schritten:
Öffnen Sie die PowerShell-Konsole.
Führen Sie den folgenden Befehl aus, um eine Spotlight User-SID abzurufen.
function GetSidByName($userName){ $objUser = New-Object System.Security.Principal.NTAccount($userName) $strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]) return $strSID.Value } GetSidByName 'domainName\userName'
Ersetzen Sie Domänenname durch den Domänen- und Benutzernamen für das Spotlight-Benutzerkonto.
Führen Sie in der Windows-Eingabeaufforderung den folgenden Befehl aus, um die aktuelle SDDL für den Dienst-Controller abzurufen:
sc sdshow scmanager > file.txt
Die SDDL wird in der Datei file.txt gespeichert und sieht ähnlich aus wie die folgende:
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD).
Ändern Sie die SDDL-Zeichenfolge, indem Sie den SDDL-Abschnitt kopieren, der mit IU (Interaktive Benutzende) endet.
Dieser Abschnitt ist in Klammern gesetzt (d.h. A;;CCLCRPRC;;;IU). Fügen Sie diese Klausel direkt nach der kopierten Klausel ein.
Ersetzen Sie die IU-Zeichenfolge durch die Spotlight User-SID im folgenden Text.
Die neue SDDL sieht ähnlich aus wie die folgende:
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU) (A;;CCLCRPRC;;;A-1-22-3-4444444444-5555555555-6666666-7777777777)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA) S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
Legen Sie die Anmeldeinformationen für den Zugriff auf den Dienstcontroller mit dem Befehl sdset fest.
sc sdset scmanager "D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CCLCRPRC;;;A-1-22-3-4444444444-5555555555-6666666-7777777777)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)"
Legen Sie die Rechte für die Dienste SQL Server, SQL Agent und SQL Full-text Filter Daemon Launcher fest, indem Sie das Dienstprogramm Command-Line Tool SubInACL für die SID Spotlight User verwenden.
Führen Sie das Dienstprogramm mit den folgenden Optionen aus:
subinacl.exe /service mssqlserver /GRANT= A-1-22-3-4444444444-5555555555-6666666-7777777777=LQSEI subinacl.exe /service sqlserveragent /GRANT= A-1-22-3-4444444444-5555555555-6666666-7777777777=LQSEI subinacl.exe /service mssqlfdlauncher /GRANT= A-1-22-3-4444444444-5555555555-6666666-7777777777=LQSEI
Die folgenden Rechte können wie folgt gelesen werden:
- L: Read contro
- Q: Abfragen der Dienstkonfiguration
- S: Abfragen des Dienst-Status
- E: Aufzählen abhängiger Dienste
- I: Abfrage des Dienstes
Legen Sie die Rechte für ClusSvc (Cluster Service) mit dem Command-Line Tool SubInACL-Dienstprogramm für die SID Spotlight User fest.
Führen Sie das Dienstprogramm mit den folgenden Optionen aus:
subinacl.exe /service clussvc /GRANT= A-1-22-3-4444444444-5555555555-6666666-7777777777=LQSEI
Verwalten des ferngesteuerten Zugriffs auf die Registrierung
Erstellen Sie einen Registrierungsschlüssels zum Verwalten des Remotezugriffs auf die Registrierung.
Um einen Schlüssel zu erstellen, führen Sie folgende Schritte aus:
Öffnen Sie den Registrierungseditor, und suchen Sie den folgenden Schlüssel
HKLM\SYSTEM\CurrentControlSet\Control
Wählen Sie im Menü Bearbeiten die Option Schlüssel hinzufügen und geben Sie die folgenden Werte ein:
- Schlüsselname: SecurePipeServer
- Klasse: REG_SZ
Suchen Sie den folgenden Schlüssel
HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers
Wählen Sie im Menü Bearbeiten die Option Schlüssel hinzufügen und geben Sie die folgenden Werte ein:
- Schlüsselname: winreg
- Klasse: REG_SZ
Suchen Sie den folgenden Schlüssel:
HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
Wählen Sie im Menü Bearbeiten die Option Schlüssel hinzufügen und geben Sie die folgenden Werte ein:
- Name des Wertes: Beschreibung
- Datentyp: REG_SZ
- Zeichenfolge: Registrierungsserver
Suchen Sie den folgenden Schlüssel:
HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
Klicken Sie mit der rechten Maustaste auf winreg, wählen Sie Berechtigungen und bearbeiten Sie die momentanen Berechtigungen oder fügen Sie Benutzender oder Gruppen hinzu, denen Sie Zugriff gewähren möchten.
Beenden Sie Registrierungseditor und starten Sie Windows neu.