Condividi tramite


Monitoraggio con privilegi limitati

Tutti i flussi di lavoro (individuazioni, regole, monitoraggi e azioni) in questo Management Pack sono associati ai profili RunAs.

Per abilitare il monitoraggio con privilegi limitati, concedere le autorizzazioni appropriate agli account RunAs ed eseguire il mapping di questi account ai rispettivi profili RunAs.

Nota

Il monitoraggio VLF (Virtual Log File Count ) non supporta il monitoraggio con privilegi limitati in SQL Server 2012 e 2014.

Creare account Active Directory

  1. In Active Directory creare gli utenti di dominio seguenti per l'accesso con privilegi limitati alle istanze di SQL Server di destinazione:

    • SQLTaskAction
    • SQLDiscovery
    • SQLMonitor
  2. Creare il gruppo di dominio SQLMPLowPriv e aggiungere gli utenti di dominio seguenti a questo gruppo:

    • SQLDiscovery
    • SQLMonitor
  3. Aggiungere il gruppo SQLMPLowPriv al gruppo di sicurezza Active Directory Controller di dominio di sola lettura.

Monitoraggio degli agenti

Questa sezione illustra come configurare il monitoraggio dell'agente con privilegi limitati.

Sugli agenti

  1. Concedere all'utente SQLTaskAction e al gruppo SQLMPLowPriv l'autorizzazione Lettura per la chiave del Registro di sistema: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server

  2. In ogni istanza monitorata concedere al gruppo SQLMPLowPriv l'autorizzazione Lettura per la chiave del Registro di sistema: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\[InstanceID]\MSSQLServer\Parameters

  3. Aggiungere gli utenti SQLTaskAction e SQLMonitor al gruppo locale di sicurezza Active Directory Con autorizzazioni per la lettura del registro eventi.

  4. Concedere metodi di esecuzione, abilitare l'account, abilitare l'abilitazione remota e leggere le autorizzazioni di sicurezza per SQLTaskAction e SQLMPLowPriv per gli spazi dei nomi WMI seguenti usando il controllo WMI:

    • RADICE
    • ROOT\CIMV2
    • ROOT\DEFAULT
    • ROOT\Microsoft\SqlServer\ComputerManagement11 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement12 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement13 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement14 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement15 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement16 (se esistente)
  5. Configurare i criteri di sicurezza locali Consenti accesso locale per consentire all'utente SQLTaskAction e agli utenti del gruppo di dominio SQLMPLowPriv di accedere localmente.

    Nota

    Se si usa System Center Operations Manager 2016, seguire i passaggi precedenti per fornire l'autorizzazione Consenti accesso locale agli account RunAs. Altre informazioni.

  6. Configurare i criteri di sicurezza locali Accesso come servizio per consentire agli utenti del gruppo di dominio SQLTaskAction e SQLMPLowPriv di accedere come servizio.

    Nota

    Se si usa System Center Operations Manager 2019 o versione successiva, seguire i passaggi precedenti per fornire l'autorizzazione Accesso come servizio per gli account RunAs . Altre informazioni.

  7. Nelle proprietà di Microsoft Monitoring Agent per il gruppo di gestione selezionato impostare l'account di sistema locale per eseguire le azioni dell'agente.

Passaggi aggiuntivi per le istanze di SQL Server del cluster

  1. Eseguire i passaggi precedenti per ogni nodo del cluster.

  2. Concedere a SQLMPLowPriv e SQLTaskAction le autorizzazioni DCOM di avvio remoto e attivazione remota tramite DCOMCNFG.

  3. Consenti gestione remota Windows tramite Windows Firewall.

  4. Concedere il controllo completo del gruppo SQLMPLowPriv al cluster usando Gestione cluster di failover.

  5. Concedere le autorizzazioni Execute Methods, Enable Account, Remote Enable e Read Security per SQLTaskAction e SQLMPLowPriv per lo spazio dei nomi root\MSCluster WMI usando il controllo WMI.

In istanze di SQL Server

  1. Aprire SQL Server Management Studio e connettersi all'istanza di SQL Server motore di database.

  2. In SQL Server Management Studio, per ogni istanza di SQL Server motore di database in esecuzione in un server monitorato, usare lo script SQL seguente per creare e impostare la configurazione dei privilegi più bassi per l'account di dominio SQLMPLowPriv:

    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];
    

Nelle condivisioni SMB

  1. Concedere le autorizzazioni di condivisione aprendo la finestra di dialogo delle proprietà di condivisione per la condivisione che ospita file di dati di SQL Server o file di log delle transazioni di SQL Server.

  2. Concedere l'autorizzazione lettura a SQLMPLowPriv.

  3. Concedere le autorizzazioni NTFS aprendo la finestra di dialogo delle proprietà per la cartella condivisa e passando alla scheda Sicurezza .

  4. Concedere l'autorizzazione lettura a SQLMPLowPriv.

Passaggi facoltativi per le attività sugli agenti

Alcune attività facoltative di System Center Operations Manager richiedono un privilegio superiore in un computer agente e/o in un database per consentire l'esecuzione delle attività.

Seguire questa procedura in un computer agente o in un database solo se si vuole consentire all'operatore della console di System Center Operations Manager di eseguire azioni correttive:

  1. Se l'attività è correlata all'avvio o all'arresto di un servizio NT ,ad esempio servizio motore di database, servizio SQL Server Agent, servizio ricerca full-text SQL, Integration Services, nel computer agente, concedere all'utente SQLTaskAction l'autorizzazione per avviare o arrestare un servizio NT. Ciò comporta l'impostazione di un descrittore di sicurezza del servizio. Per ulteriori informazioni, vedere la pagina Web relativa a sc sdset.

    Leggere i privilegi esistenti per il servizio specificato usando sc sdshow e concedere privilegi aggiuntivi all'utente SQLTaskAction .

    Ad esempio, se i risultati del comando sdshow per il servizio SQL Server sono i seguenti:

    *D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)*
    

    In questo caso, il comando seguente concede l'accesso sufficiente a SQLTaskAction per l'avvio e l'arresto del servizio SQL Server. Sostituire "SQLServerServiceName" e "SID per SQLTaskAction" con i valori appropriati e mantenere tutti gli elementi in una singola riga.

    *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. In SQL Server Management Studio, per ogni istanza di SQL Server motore di database in esecuzione in un server monitorato, creare un account di accesso per SQLTaskAction:

    USE [msdb];
    CREATE USER [SQLTaskAction] FOR LOGIN [SQLTaskAction];
    
  3. Concedere il ruolo del database db_owner per ogni database se l'attività è correlata all'esecuzione di controlli del database:

    • Controllo catalogo (DBCC)
    • Controllo database (DBCC)
    • Check Disk (DBCC) (richiama DBCC CHECKALLOC)
    USE [yourdatabase];
    ALTER ROLE [db_owner] ADD MEMBER [SQLTaskAction];
    
  4. Concedere il privilegio ALTER ANY DATABASE all'account di accesso SQLTaskAction per eseguire l'attività se l'attività è correlata alla modifica dello stato del database:

    • Impostazione database su stato offline
    • Impostazione database su stato online
    • Impostazione database sullo stato di emergenza
    USE [master];
    GRANT ALTER ANY DATABASE TO [SQLTaskAction];
    

In System Center Operations Manager

  1. Importare il Management Pack di SQL Server.

  2. Creare gli account RunAs basati su Windows seguenti:

    • SQLTaskAction
    • SQLDiscovery
    • SQLMonitor
  3. Nella console di System Center Operations Manager configurare profili RunAs come indicato di seguito:

    • Impostare il profilo RunAs attività Microsoft SQL Server per usare l'account RunAs SQLTaskAction .
    • Impostare il profilo RunAs di individuazione di Microsoft SQL Server per usare l'account RunAs SQLDiscovery .
    • Impostare il profilo RunAs di monitoraggio di Microsoft SQL Server per usare l'account RunAs SQLMonitor .

Per evitare problemi di monitoraggio di SQL Server, è necessario usare gli account SQLTaskAction, SQLDiscovery e SQLMonitor RunAs per gestire la destinazione come oggetto Computer Windows.

Monitoraggio senza agenti

[Applicabile a SQL Server in Windows e in Linux]

Questa sezione illustra come configurare il monitoraggio senza privilegi limitati senza agente.

In istanze di SQL Server

  1. Aprire SQL Server Management Studio e connettersi all'istanza di SQL Server motore di database.

  2. In SQL Server Management Studio, per ogni istanza di SQL Server motore di database in esecuzione in un server monitorato, usare lo script SQL seguente per creare e impostare la configurazione dei privilegi più bassi per l'account SQLMPLowPriv con l'autenticazione di Active Directory:

    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];
    

Alcune attività facoltative di System Center Operations Manager richiedono un privilegio superiore in un computer agente e/o in un database per consentire l'esecuzione delle attività.

Seguire questa procedura solo se si vuole consentire all'operatore della console di System Center Operations Manager di eseguire azioni correttive su tale destinazione:

  1. In SQL Server Management Studio, per ogni istanza di SQL Server motore di database in esecuzione in un server monitorato, creare un account di accesso per SQLTaskAction:

    USE [msdb];
    CREATE USER [SQLTaskAction] FOR LOGIN [SQLTaskAction];
    
  2. Concedere il ruolo del database db_owner per ogni database se l'attività è correlata all'esecuzione di controlli del database:

    • Controllo catalogo (DBCC)
    • Controllo database (DBCC)
    • Check Disk (DBCC) (richiama DBCC CHECKALLOC)
    USE [yourdatabase];
    ALTER ROLE [db_owner] ADD MEMBER [SQLTaskAction];
    
  3. Concedere il privilegio ALTER ANY DATABASE all'account di accesso SQLTaskAction per eseguire l'attività se l'attività è correlata alla modifica dello stato del database:

    • Impostazione database su stato offline
    • Impostazione database su stato online
    • Impostazione database sullo stato di emergenza
    USE [master];
    GRANT ALTER ANY DATABASE TO [SQLTaskAction];
    

Utilizzo della Procedura guidata di monitoraggio

Per configurare il monitoraggio senza privilegi limitati tramite la procedura guidata di monitoraggio, seguire la procedura descritta nella sezione Configurazione della modalità di monitoraggio senza agente, ma con le modifiche seguenti:

  1. Nella finestra Aggiungi monitoraggio guidato selezionare Aggiungi istanze.

  2. Nella finestra Aggiungi istanze selezionare un account RunAs comune con l'account di accesso con privilegi limitati SQL appropriati e specificare origini dati e/o stringa di connessione.

    Ad esempio:

    • 192.0.2.10; MachineName="nome-server"; InstanceName="nome-istanza"; Platform="Windows"
    • 192.0.2.11,50626; MachineName="nome server"; InstanceName="nome-istanza"; Platform="Windows"
    • 192.0.2.15; MachineName="server-name"; InstanceName="instance-name"; Platform="Linux"

    È anche possibile creare un nuovo account RunAs. A tale scopo, nella finestra Aggiungi istanze selezionare Nuovo, immettere un nuovo nome per l'account RunAs e specificare le credenziali per accedere a SQL Server da monitorare.

    Screenshot dell'account RunAs.

    Dopo aver stabilito la connessione, è possibile visualizzare e modificare le proprietà dell'istanza aggiunta.

    Screenshot delle proprietà dell'istanza.

Monitoraggio misto

Per configurare il monitoraggio misto con privilegi limitati, seguire questa procedura descritta nella sezione Monitoraggio agente ed eseguire le operazioni seguenti:

Gestione dell'accesso remoto a WMI

Per configurare la sicurezza per le configurazioni con account con privilegi limitati, seguire questa procedura in ogni server di monitoraggio in modalità mista:

  1. Avviare la console mmc.exe e aggiungere gli snap-in seguenti:

    • Servizi componenti
    • Controllo WMI (per un computer locale)
  2. Espandere Servizi componenti, fare clic con il pulsante destro del mouse su Computer e scegliere Proprietà.

    Screenshot delle proprietà di apertura.

  3. Aprire la scheda Sicurezza COM.

  4. Nella sezione Autorizzazioni di avvio e attivazione selezionare Modifica limiti.

    Screenshot dei limiti di modifica.

  5. Concedere le autorizzazioni seguenti all'account del computer remoto:

    • Avvio remoto
    • Attivazione remota

    Screenshot dell'attivazione delle autorizzazioni.

  6. Passare allo snap-in Controllo WMI e aprire le relative proprietà.

  7. Aprire la scheda Sicurezza e selezionare gli spazi dei nomi seguenti:

    • ROOT\CIMV2
    • ROOT\Microsoft\SqlServer
    • ROOT\Microsoft\SqlServer\ComputerManagement11 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement12 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement13 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement14 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement15 (se esistente)
    • ROOT\Microsoft\SqlServer\ComputerManagement16 (se esistente)
  8. Seleziona Sicurezza.

  9. Concedere le autorizzazioni seguenti al computer di destinazione:

    • Abilita account
    • Abilita remoto

    Screenshot delle autorizzazioni di sicurezza.

  10. Seleziona Avanzate.

  11. Selezionare l'account di destinazione e selezionare Modifica.

  12. Nell'elenco a discesa Si applica a selezionare Solo questo spazio dei nomi.

  13. Nella sezione Autorizzazioni abilitare le caselle di controllo seguenti:

    • Abilita account
    • Abilita remoto

    Screenshot della configurazione delle autorizzazioni CIMV.

Concessione delle autorizzazioni del servizio

Per ottenere informazioni sui servizi, concedere le autorizzazioni necessarie in base alla procedura seguente:

  1. Aprire la console di PowerShell.

  2. Eseguire il comando seguente per recuperare un SID utente Spotlight.

    function GetSidByName($userName){
    $objUser = New-Object System.Security.Principal.NTAccount($userName)
    $strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
    return $strSID.Value
    }
    GetSidByName 'domainName\userName'
    

    Sostituire domainName\userName con il dominio e i nomi utente per l'account utente Spotlight.

    Screeshot per sostituire l'utente spotlite.

  3. Dal prompt dei comandi di Windows eseguire il comando seguente per recuperare l'SDDL corrente per Gestione controllo servizi:

    sc sdshow scmanager > file.txt
    

    L'SDDL viene salvato nel file file.txt e ha un aspetto simile al seguente:

    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. Modificare la stringa SDDL copiando la sezione SDDL che termina in IU (Interactive Users).

    Questa sezione è racchiusa tra parentesi (ovvero A;; CCLCRPRC;;; IU). Incollare questa clausola direttamente dopo la clausola copiata.

    Sostituire la stringa di IU con il SID utente Spotlight nel testo seguente.

    Il nuovo SDDL è simile al seguente:

    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. Impostare le credenziali di sicurezza per accedere a Service Control Manager usando il comando sdset .

    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. Impostare i diritti per i servizi Utilità di avvio del daemon filtri full-text di SQL Server, SQL Agent e SQL usando l'utilità SubInACL dello strumento da riga di comando per il SID utente Spotlight.

    Eseguire l'utilità con le opzioni seguenti:

    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 dell'esecuzione di subinacl.

    I diritti seguenti possono essere letti come:

    • L: Leggi contro
    • D: Configurazione del servizio di query
    • S: Stato del servizio di query
    • E: enumerare i servizi dipendenti
    • Servizio Interrogazione
  7. Impostare i diritti per ClusSvc (servizio cluster) usando l'utilità SubInACL dello strumento da riga di comando per il SID utente Spotlight.

    Eseguire l'utilità con le opzioni seguenti:

    subinacl.exe /service clussvc /GRANT= A-1-22-3-4444444444-5555555555-6666666-7777777777=LQSEI
    

Gestione dell'accesso remoto al Registro di sistema

Creare una chiave del Registro di sistema per gestire l'accesso remoto al Registro di sistema.

Per creare una chiave, seguire questa procedura:

  1. Aprire l'editor del Registro di sistema e individuare la chiave seguente HKLM\SYSTEM\CurrentControlSet\Control

  2. Nel menu Modifica selezionare Aggiungi chiave e immettere i valori seguenti:

    • Nome chiave: SecurePipeServers
    • Classe: REG_SZ
  3. Individuare la chiave seguente HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers

  4. Nel menu Modifica selezionare Aggiungi chiave e immettere i valori seguenti:

    • Nome chiave: winreg
    • Classe: REG_SZ
  5. Individuare la chiave seguente: HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

  6. Nel menu Modifica selezionare Aggiungi chiave e immettere i valori seguenti:

    • Nome valore: Descrizione
    • Tipo di dati: REG_SZ
    • Stringa: server del Registro di sistema
  7. Individuare la chiave seguente: HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg

  8. Fare clic con il pulsante destro del mouse su winreg, selezionare Autorizzazioni e modificare le autorizzazioni correnti oppure aggiungere utenti o gruppi a cui si vuole concedere l'accesso.

  9. Uscire dall'editor del Registro di sistema e riavviare Windows.