Freigeben über


Ü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

  1. Erstellen Sie in Active Directory die folgenden Benutzenden für den Zugriff mit geringen Rechten auf die SQL Server-Zielinstanzen:

    • SQLTaskAction
    • SQLDiscovery
    • SQLMonitor
  2. Erstellen Sie die Domänengruppe SQLMPLowPriv und fügen Sie die folgenden Benutzenden der Domäne zu dieser Gruppe hinzu:

    • SQLDiscovery
    • SQLMonitor
  3. 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

  1. 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

  2. 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

  3. Fügen Sie die SQLTaskAction- und SQLMonitor-Benutzer der lokalen Active Directory-Gruppe Ereignisprotokollleser hinzu.

  4. 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)
  5. 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

  6. 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

  7. 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

  1. Führen Sie die oben genannten Schritte für jeden Clusterknoten durch.

  2. Erteilen Sie SQLMPLowPriv und SQLTaskAction die DCOM-Berechtigungen "Remotestart" und "Remoteaktivierung DCOM" mithilfe von DCOMCNFG.

  3. Lassen Sie die Windows-Remoteverwaltung durch die Windows-Firewall zu.

  4. Gewähren Sie dem Cluster mit dem Failovercluster-Manager die Gruppe SQLMPLowPrivFull Control.

  5. 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

  1. Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zur SQL Server Database Engine-Instanz her.

  2. 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

  1. 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.

  2. Erteilen Sie die Berechtigung Lesen an SQLMPLowPriv.

  3. Erteilen Sie NTFS-Berechtigungen, indem Sie den Eigenschaften-Dialog für den gemeinsamen Ordner öffnen und zur Registerkarte Sicherheit navigieren.

  4. 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:

  1. 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)*
    
  2. 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];
    
  3. 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];
    
  4. 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

  1. Importen des SQL Server-Management Pack.

  2. Erstellen Sie die folgenden Windows-basierten ausführenden Konten:

    • SQLTaskAction
    • SQLDiscovery
    • SQLMonitor
  3. 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

  1. Öffnen Sie SQL Server Management Studio und stellen Sie eine Verbindung zur SQL Server Database Engine-Instanz her.

  2. 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:

  1. 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];
    
  2. 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];
    
  3. 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:

  1. Wählen Sie im Fenster Assistent für die Überwachung hinzufügen die Option Instanzen hinzufügen.

  2. 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.

    Screenshot des ausführenden Kontos.

    Nachdem die Verbindung hergestellt wurde, können Sie die Eigenschaften der hinzugefügten Instanz anzeigen und bearbeiten.

    Screenshot der Eigenschaften der Instanz.

Ü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:

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:

  1. Starten Sie die Konsole mmc.exe und fügen Sie die folgenden Snap-Ins hinzu:

    • Komponentendienste
    • WMI-Steuerung (für einen lokalen Computer)
  2. Erweitern Sie Komponentendienste, klicken Sie mit der rechten Maustaste auf Mein Computer, und wählen Sie Eigenschaften.

    Screenshot der sich öffnenden Eigenschaften.

  3. Öffnen Sie die Registerkarte COM-Sicherheit.

  4. Wählen Sie im Abschnitt Start- und Aktivierungsberechtigungen die Option Grenzwerte bearbeiten.

    Screenshot der Bearbeitungsgrenzwerte.

  5. Erteilen Sie dem Konto des Remotecomputers die folgenden Berechtigungen:

    • Remotestart
    • Remoteaktivierung

    Screenshot der Aktivierung der Berechtigungen.

  6. Gehen Sie zum Snap-In WMI- Steuerung und öffnen Sie dessen Eigenschaften.

  7. Ö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)
  8. Wählen Sie Sicherheit aus.

  9. Erteilen Sie dem Zielcomputer die folgenden Berechtigungen:

    • Konto aktivieren
    • Remoteaktivierung

    Screenshot der Sicherheitsberechtigungen.

  10. Wählen Sie Erweitertaus.

  11. Wählen Sie das Zielkonto aus und wählen Sie Bearbeiten.

  12. Wählen Sie in der Dropdownliste Gilt für die Option Nur dieser Namespace.

  13. Aktivieren Sie im Abschnitt Berechtigungen die folgenden Kontrollkästchen:

    • Konto aktivieren
    • Remoteaktivierung

    Screenshot der Konfiguration der CIMV-Berechtigungen.

Erteilung von Dienstberechtigungen

Um Informationen über die Dienste zu erhalten, erteilen Sie die erforderlichen Berechtigungen gemäß den folgenden Schritten:

  1. Öffnen Sie die PowerShell-Konsole.

  2. 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.

    Screeshot des Ersetzens des Spotlite-Benutzernden.

  3. 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).
    
  4. Ä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)
    
  5. 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)"
    
  6. 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
    

    Screenshot der Ausführung von subinacl.

    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
  7. 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:

  1. Öffnen Sie den Registrierungseditor, und suchen Sie den folgenden Schlüssel HKLM\SYSTEM\CurrentControlSet\Control

  2. 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
  3. Suchen Sie den folgenden Schlüssel HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers

  4. 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
  5. Suchen Sie den folgenden Schlüssel: HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

  6. 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
  7. Suchen Sie den folgenden Schlüssel: HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

  8. 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.

  9. Beenden Sie Registrierungseditor und starten Sie Windows neu.