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 a un criterio.

  • 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 della configurazione del server relativa ai trigger nidificati è 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 un criterio quando viene apportata una modifica importante.

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

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

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.

  • Criterio 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. Un criterio può 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. Un criterio appartiene 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.

  • Criterio valido
    Vengono considerati validi per una destinazione i criteri che la controllano. Un criterio è valido in relazione a una destinazione solo se si verificano tutte le condizioni seguenti:

    • Il criterio è abilitato.

    • La destinazione appartiene al set di destinazioni del criterio.

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

Esempi di problemi risolti tramite la gestione basata su criteri

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

  • Un criterio di una società impedisce l'abilitazione di Posta elettronica database o di SQL Mail. Viene creato un criterio per controllare lo stato del server di queste due funzionalità. Un amministratore confronta lo stato del server con il criterio. Se lo stato del server non è conforme, l'amministratore sceglie la modalità di configurazione e la conformità dello stato del server viene ripristinata dal criterio.

  • Il database AdventureWorks utilizza una convenzione di denominazione che richiede che tutti i nomi delle stored procedure inizino con le lettere AW_. A tale scopo, viene creato un criterio. Un amministratore testa il criterio 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 dal criterio. 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 un criterio contenente la condizione, condizioni aggiuntive per filtrare i set di destinazioni e la modalità di valutazione.

  4. Verificare se un'istanza di SQL Server è conforme al criterio.

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 un criterio 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).

  • Protezione per gli avvisi:

    Quando i criteri vengono valutati su richiesta, vengono eseguiti nel contesto di protezione dell'utente. Per poter scrivere nel log degli 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 log degli errori e la generazione di un avviso.

Protezione

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 protezioneNota sulla protezione

Possibile elevazione di credenziali: gli utenti nel 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 un criterio 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 protezione seguenti:

  • Un amministratore di sistema o un proprietario del database può sottoscrivere un criterio 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 protezioneNota sulla protezione

    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 protezione 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 abilita un criterio in base al quale tutte le tabelle devono disporre di un indice, l'applicazione della conformità al criterio comporterà il mancato funzionamento di tali funzionalità.