Amministrazione di server tramite la gestione basata su criteri

La gestione basata su criteri è un sistema per la gestione di una o più istanze di SQL Server 2008. Quando gli amministratori dei criteri di SQL Server utilizzano la gestione basata su criteri, utilizzano SQL Server Management Studio per creare criteri per la gestione di entità nel server, quali l'istanza di SQL Server, database o altri oggetti di SQL Server.

La gestione basata su criteri include tre componenti:

  • Gestione dei criteri

    Gli amministratori dei criteri creano i criteri.

  • Amministrazione esplicita

    Gli amministratori selezionano una o più destinazioni gestite e verificano in modo esplicito che tali destinazioni siano conformi a criteri specifici oppure operano in modo esplicito per rendere le destinazioni conformi ai criteri.

  • Modalità di valutazione

    Sono disponibili quattro modalità di valutazione, tre delle quali possono essere automatizzate:

    • Su richiesta. Questa modalità consente di valutare i criteri quando questi vengono specificati direttamente dall'utente.

    • Su modifica: impedisci esecuzione. Questa modalità automatica utilizza trigger DDL per impedire violazioni dei criteri.

      Nota importanteImportante

      Se l'opzione di configurazione del server nested triggers è disabilitata, la modalità Su modifica: impedisci esecuzione non funzionerà correttamente. La gestione basata su criteri si basa su trigger DDL per rilevare ed eseguire il rollback di operazioni DDL non conformi ai criteri che utilizzano questa modalità di valutazione. La rimozione dei trigger DDL della gestione basata su criteri o la disabilitazione dei trigger nidificati provocherà un comportamento imprevisto o la mancata esecuzione di questa modalità di valutazione.

    • Su modifica: solo log. Questa modalità automatica utilizza la notifica degli eventi per valutare i criteri quando viene apportata una modifica importante.

    • Su pianificazione. Questa modalità automatica utilizza un processo di SQL Server Agent per valutare periodicamente i criteri

    Quando i criteri automatici non sono abilitati, la gestione basata su criteri non influisce sulle prestazioni del sistema.

    Nota

    Quando il sistema calcola il set di oggetti per i criteri, per impostazione predefinita gli oggetti di sistema vengono esclusi. Se, ad esempio, il set di oggetti dei criteri fa riferimento a tutte le tabelle, i criteri non verranno applicati alle tabelle di sistema. Per valutare i criteri rispetto agli oggetti di sistema, è necessario aggiungere in modo esplicito gli oggetti di sistema al set di oggetti. Sebbene siano supportati tutti i criteri per la modalità di valutazione controllo su pianificazione, per motivi di prestazioni, tuttavia, non tutti i criteri con set di oggetti arbitrari sono supportati per la modalità di valutazione controllo su modifica. Per ulteriori informazioni, vedere https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

Termini e concetti relativi alla gestione basata su criteri

  • Destinazione gestita della gestione basata su criteri
    Entità gestite tramite la gestione basata su criteri, ad esempio un'istanza del Motore di database di SQL Server, un database, una tabella o un indice. Tutte le destinazioni in un'istanza del server formano una gerarchia di destinazioni. Un set di destinazioni è il set risultante dall'applicazione di un set di filtri di destinazione alla gerarchia di destinazioni, ad esempio tutte le tabelle del database di proprietà dello schema HumanResources.

  • Facet della gestione basata su criteri
    Set di proprietà logiche che definiscono il comportamento o le caratteristiche di certi tipi di destinazioni gestite. Il numero e le caratteristiche delle proprietà vengono incorporati nel facet e possono essere aggiunti o rimossi solo dal creatore del facet. Un tipo di destinazione può implementare uno o più facet di gestione e un facet di gestione può essere implementato da uno o più tipi di destinazione. Alcune proprietà di un facet possono essere valide solo per una versione specifica. La proprietà Posta elettronica database del facet Surface Area Configuration, ad esempio, si applica solo a SQL Server 2005 e versioni successive.

  • Condizione della gestione basata su criteri
    Espressione booleana che specifica un set di stati consentiti per una destinazione gestita tramite la gestione basata su criteri in relazione a un facet di gestione.

  • Criteri di gestione basata su criteri
    Condizione della gestione basata su criteri e comportamento previsto, ad esempio la modalità di valutazione, i filtri di destinazione e la pianificazione. I criteri possono contenere solo una condizione. I criteri possono essere abilitati o disabilitati.

  • Categoria di criteri della gestione basata su criteri
    Categoria definita dall'utente per semplificare la gestione dei criteri. Gli utenti possono classificare i criteri in diverse categorie. I criteri appartengono esclusivamente a un'unica categoria di criteri. Le categorie di criteri si applicano a database e server. Applicare le condizioni seguenti a livello di database:

    • I proprietari del database possono sottoscrivere un set di categorie di criteri per un database.

    • Solo i criteri delle categorie sottoscritte possono controllare un database.

    • Tutti i database sottoscrivono implicitamente la categoria di criteri predefinita.

    A livello di server, le categorie di criteri possono essere applicate a tutti i database.

  • Criteri validi
    Vengono considerati validi per una destinazione i criteri che la controllano. I criteri sono validi in relazione a una destinazione solo se si verificano tutte le condizioni seguenti:

    • I criteri sono abilitati.

    • La destinazione appartiene al set di destinazioni dei criteri.

    • La destinazione o uno dei predecessori delle destinazioni sottoscrive il gruppo di criteri che contiene i criteri.

Esempi di problemi risolti tramite la gestione basata su criteri

La gestione basata su criteri è utile per risolvere i problemi presentati negli scenari seguenti:

  • I criteri di una società impediscono l'abilitazione di Posta elettronica database o di SQL Mail. Vengono creati i criteri per controllare lo stato del server di queste due funzionalità. Un amministratore confronta lo stato del server con i criteri. Se lo stato del server non è conforme, l'amministratore sceglie la modalità di configurazione e la conformità dello stato del server viene ripristinata dai criteri.

  • Il database AdventureWorks2008R2 utilizza una convenzione di denominazione che richiede che tutti i nomi delle stored procedure inizino con le lettere AW_. A tale scopo, vengono creati i criteri. Un amministratore testa i criteri e riceve un elenco di stored procedure che non sono conformi. Se stored procedure successive non saranno conformi a questa convenzione di denominazione, le istruzioni di creazione per le stored procedure avranno esito negativo.

Modalità di valutazione consentite

Le modalità di valutazione dei criteri sono determinate dalle caratteristiche del facet della gestione basata su criteri utilizzato dai criteri. Tutti i facet supportano le modalità Su richiesta e Su pianificazione. I facet supportano la modalità Su modifica: solo log se la modifica dello stato del facet può essere acquisita da alcuni eventi. I facet supportano la modalità Su modifica: impedisci esecuzione se è previsto il supporto transazionale per le istruzioni DDL che modificano lo stato del facet. I criteri automatizzati con una delle tre modalità di esecuzione possono essere abilitati e disabilitati.

In SQL Server Management Studio la finestra di dialogo Valuta criteri include due opzioni che è possibile utilizzare per l'esecuzione dei criteri:

  • Valuta
    Consente di valutare i criteri rispetto alle destinazioni selezionate.

  • Applica
    Consente di applicare modifiche alle destinazioni applicabili che violano i criteri. Alcune destinazioni non possono essere riconfigurate tramite la gestione basata su criteri. Se, ad esempio, si valuta se i file di backup e i file di dati siano archiviati in dispositivi distinti, la gestione basata su criteri può rilevare le violazioni di questa condizione, ma non è possibile applicare modifiche tramite la gestione basata su criteri per applicare la conformità ai criteri.

Gestione dei criteri

I criteri vengono creati e gestiti tramite Management Studio. Il processo include i passaggi seguenti:

  1. Selezionare un facet della gestione basata su criteri che contiene le proprietà da configurare.

  2. Definire una condizione che specifica lo stato di un facet di gestione.

  3. Definire i criteri contenenti la condizione, condizioni aggiuntive per filtrare i set di destinazioni e la modalità di valutazione.

  4. Verificare se un'istanza di SQL Server è conforme ai criteri.

Per i criteri con errori, in Esplora oggetti viene restituito un avviso di integrità critica sotto forma di icona rossa accanto alla destinazione e ai nodi di livello superiore nell'albero.

Archiviazione dei criteri

I criteri vengono archiviati nel database msdb. In seguito alla modifica di criteri o di una condizione, è consigliabile eseguire il backup del database msdb. Per ulteriori informazioni, vedere Considerazioni sul backup dei database del modello e msdb.

In SQL Server 2008 sono inclusi criteri che possono essere utilizzati per monitorare un'istanza di SQL Server. Per impostazione predefinita, tali criteri non vengono installati nel Motore di database, ma possono essere importati dal percorso di installazione predefinito C:\Programmi\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033. Per ulteriori informazioni, vedere Procedura: Esportazione e importazione di un criterio della gestione basata su criteri.

È possibile creare direttamente criteri utilizzando il menu File/Nuovo, quindi salvando i criteri in un file. In questo modo è possibile creare criteri quando non si è connessi a un'istanza del Motore di database.

Una cronologia dei criteri valutati nell'istanza corrente del Motore di database viene gestita nelle tabelle di sistema msdb. Non viene gestita alcuna cronologia dei criteri applicati ad altre istanze del Motore di database o a Reporting Services e Analysis Services. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi ai criteri della gestione basata su criteri.

Configurazione di avvisi per notificare agli amministratori eventuali errori dei criteri

Se si verifica una violazione quando i criteri di gestione basata su criteri vengono eseguiti in una delle tre modalità di valutazione automatiche, viene scritto un messaggio nel registro eventi. Per ricevere una notifica relativa all'avvenuta scrittura del messaggio nel registro eventi, è possibile creare un avviso per rilevare il messaggio ed eseguire un'azione. L'avviso dovrà rilevare i messaggi come indicato nella tabella seguente.

Modalità di esecuzione

Numero di messaggio

Su modifica: impedisci esecuzione

(se automatica)

34050

Su modifica: impedisci esecuzione

(se Su richiesta)

34051

Su pianificazione

34052

Su modifica

34053

Per configurare un avviso per rispondere ai messaggi di errore relativi alla gestione basata su criteri, vedere gli argomenti seguenti:

Considerazioni aggiuntive sugli avvisi

Tenere presenti le considerazioni aggiuntive seguenti relative agli avvisi:

  • Gli avvisi vengono generati solo per i criteri abilitati. Poiché i criteri Su richiesta non possono essere abilitati, non vengono generati avvisi per i criteri eseguiti su richiesta.

  • Se l'azione che si desidera eseguire include l'invio di un messaggio di posta elettronica, è necessario configurare un account di posta elettronica. È consigliabile utilizzare Posta elettronica database. Per ulteriori informazioni su come configurare Posta elettronica database, vedere Procedura: Creazione di account di Posta elettronica database (Transact-SQL).

  • Sicurezza per gli avvisi:

    Quando i criteri vengono valutati su richiesta, vengono eseguiti nel contesto di sicurezza dell'utente. Per poter scrivere nel registro errori, l'utente deve disporre di autorizzazioni ALTER TRACE o deve essere un membro del ruolo predefinito del server sysadmin. I criteri valutati da un utente che dispone di privilegi di livello inferiore non verranno scritti nel registro eventi e non genereranno un avviso.

    Le modalità di esecuzione automatiche possono essere eseguite solo da membri del ruolo sysadmin. Tale ruolo consente la scrittura dei criteri nel registro errori e la generazione di un avviso.

Sicurezza

L'amministrazione della gestione basata su criteri richiede l'appartenenza al ruolo PolicyAdministratorRole nel database msdb. Questo ruolo dispone del controllo completo su tutti i criteri nel sistema, incluse la creazione e la modifica di criteri e condizioni, nonché l'abilitazione e la disabilitazione dei criteri.

Nota sulla sicurezzaNota sulla sicurezza

Possibile elevazione di credenziali: gli utenti con il ruolo PolicyAdministratorRole possono creare trigger server e pianificare le esecuzioni di criteri che influiscono sul funzionamento dell'istanza del Motore di database. Il ruolo PolicyAdministratorRole, ad esempio, può creare criteri per impedire la creazione della maggior parte degli oggetti nel Motore di database. A causa di questa possibile elevazione di credenziali, il ruolo PolicyAdministratorRole deve essere concesso solo a utenti ritenuti attendibili per il controllo della configurazione del Motore di database.

Si applicano i principi di sicurezza seguenti:

  • Un amministratore di sistema o un proprietario del database può sottoscrivere criteri o un gruppo di criteri per il database.

  • I membri del ruolo PolicyAdministratorRole possono abilitare o disabilitare i criteri.

  • I membri di PolicyAdministratorRole possono creare criteri per la cui esecuzione ad hoc non dispongono di autorizzazioni, ma la cui esecuzione può avere esito positivo se effettuata da altri utenti che dispongono di autorizzazioni sufficienti.

    Nota sulla sicurezzaNota sulla sicurezza

    Possibile elevazione di credenziali: gli utenti del ruolo PolicyAdministratorRole possono creare criteri contenenti una condizione che utilizza la funzione ExecuteSql o ExecuteWql. Se i criteri vengono in seguito utilizzati da un utente con autorizzazioni sysadmin, le istruzioni Transact-SQL specificate dall'utente con il ruolo PolicyAdministratorRole verranno eseguite con l'autorizzazione sysadmin dell'utente che esegue i criteri.

  • L'esecuzione ad hoc dei criteri si verifica nel contesto di sicurezza dell'utente.

  • I criteri associati alla modalità di valutazione Su pianificazione utilizzano processi di SQL Server Agent di proprietà dell'account di accesso sa.

Considerazioni per l'utilizzo della gestione basata su criteri

I criteri possono influire sul funzionamento di alcune funzionalità di SQL Server. La funzionalità Change Data Capture e la replica transazionale, ad esempio, utilizzano entrambe la tabella systranschemas, che non dispone di un indice. Se si abilitano i criteri in base ai quali tutte le tabelle devono disporre di un indice, l'applicazione della conformità ai criteri comporterà il mancato funzionamento di tali funzionalità.