Lezione 2: Creare e applicare criteri per gli standard di denominazione

Si applica a:SQL Server

Alcuni tipi di policy della gestione basata su policy possono creare trigger per garantire la conformità futura alla policy. In questa lezione verranno creati criteri per l'applicazione di uno standard di denominazione per le tabelle. Si verificheranno quindi i criteri tentando di creare una tabella che violi i criteri.

Prerequisiti

Per completare questa esercitazione, sono necessari SQL Server Management Studio e l'accesso a un server che esegue SQL Server.

Creare il database Finance

  1. In Management Studio aprire una finestra di query ed eseguire l'istruzione seguente:

    CREATE DATABASE Finance ;  
    GO  
    
  2. In Esplora oggetti fare clic su Database, quindi premere F5 per aggiornare l'elenco dei database.

Creare la condizione delle tabelle di Finanza

  1. In Esplora oggetti espandere Gestione, espandere Gestione criteri, fare clic con il pulsante destro del mouse su Condizionie quindi scegliere Nuova condizione.

Nuova condizione

  1. Nella finestra di dialogo Crea nuova condizione , nella casella Nome digitare Tabelle Finance.

    1. Nell'elenco Facet selezionare Nome a più parti.
    2. Nella casella Campo dell'area Espressione selezionare @Nome. Nella casella Operatore selezionare Simile a. Nella casella Valore digitare 'fintbl%' per fare in modo che tutti i nomi di tabella inizino con i caratteri fintbl.
    3. Nella pagina Descrizione digitare I nomi di tabella del database Finance devono iniziare con fintble quindi scegliere OK per creare la condizione.

    Condizioni Tabelle Finanziarie

Crea la policy del nome Finance

  1. In Esplora oggetti fare clic con il pulsante destro del mouse su Criteri, quindi scegliere Nuovi criteri.

Nuovi criteri

  1. Nella finestra di dialogo Crea nuova politica, nella casella Nome digitare Nome Finanza.

    1. Nell'elenco Condizione di controllo selezionare Tabelle Finance. Questa opzione è disponibile nell'area Nome a più parti .
    2. Nell'area Contro verrà visualizzato un elenco di oggetti di database a cui si potrebbe applicare questa politica. Selezionare la casella di controllo per Ogni Tabella.
    3. Selezionare l'opzione Attivata. (La casella Abilitato non si applica ai criteri Su richiesta .)
    4. Nell'elenco Modalità di valutazione, selezionare Su modifica: impedisci. Questa opzione consente di applicare i criteri tramite la creazione di un trigger di database nel database Finance.
    5. Nell'elenco Restrizione server selezionare Nessuna.
    6. Nella pagina Descrizione aggiungere la descrizione 'I nomi delle tabelle nel database Finance devono contenere 'fintbl%'.'
    7. Tornare alla pagina Generale e nell'area Ogni database espandere Ogni e fare clic su Nuova condizione.

    Crea una nuova politica per il Nome Finance

  2. Nella finestra di dialogo Crea nuova condizione , nella casella Nome digitare Database Finance.

    1. Nella casella Espressione completare l'espressione in modo da includere @Name = 'Finance' e quindi fare clic su OK per chiudere la pagina della condizione.

    Creare la nuova condizione 'Database Finance'

    Nota

    Potrebbe essere necessario uscire dalla casella Valore premendo TAB per abilitare il pulsante OK .

  3. Seleziona OK.

Creare la categoria di politica finanziaria

  1. In Esplora oggetti espandere Gestione, fare clic con il pulsante destro del mouse su Gestione criteri, e scegliere Gestione categorie.

Gestisci categorie

  1. Nella finestra di dialogo Gestione categorie di criteri , in Nomedigitare Finance nella casella vuota e quindi deselezionare Imponi sottoscrizioni di database. Obbligo di sottoscrizioni del database farà sì che ogni database nell'istanza sia obbligato a sottoscrivere le politiche appartenenti a questa categoria di politiche. Per questa lezione, solo il database Finance deve sottoscrivere la policy Nome Finance.

    Gestire le categorie di criteri

  2. Seleziona OK.

Iscriviti alla categoria dei criteri di Finanza

  1. In Esplora oggetti, espandere Database, fare clic con il pulsante destro del mouse su Finance, scegliere Criterie fare clic su Categorie.

Categorie dei criteri finanziari

  1. Selezionare la casella di controllo Sottoscritto per la categoria Finance .

Sottoscritti alla politica finanziaria

  1. Seleziona OK.

Verificare l'applicazione del criterio Nome Finanza

  1. In Management Studio aprire una finestra di query. Eseguire le istruzioni seguenti che provano a creare una tabella che viola la politica Nome Finance. La tabella viola i criteri perché il nome della tabella non inizia con le lettere fintbl.

    USE Finance ;  
    GO  
    CREATE TABLE NewTable  
    (Col1 int) ;  
    GO    
    

    Si noti che i criteri impediscono la creazione della tabella e restituiscono un messaggio informativo indicante il nome dei criteri.

  Policy 'Finance Name' has been violated by 'SQLSERVER:\SQL\SQL\SQL2017\Databases\Finance\Tables\dbo.NewTable'.
  This transaction will be rolled back.
  Policy condition: '@Name LIKE 'fintbl%''
  Policy description: 'Tables names in the Finance database must contain 'fintbl%''.
  Additional help: '' : ''
  Statement: 'CREATE TABLE NewTable  
      (Col1 int)'.
  Msg 515, Level 16, State 2, Procedure msdb.sys.sp_syspolicy_execute_policy, Line 69 [Batch Start Line 2]
  Cannot insert the value NULL into column 'target_query_expression', table 'msdb.dbo.syspolicy_policy_execution_history_details_internal'; column does not allow nulls. INSERT fails.
  The statement has been terminated.
  1. Per specificare un nome valido, modificare il codice nel modo indicato di seguito ed eseguire nuovamente l'istruzione.

    USE Finance ;  
    GO  
    CREATE TABLE fintblNewTable  
    (Col1 int) ;  
    GO    
    

    Questa volta, la tabella viene creata.

Applicare i criteri all'intero server

  1. Solo il database Finance sottoscrive attualmente la categoria di policy Finance. In molti casi è più facile applicare la categoria di criteri all'intero server. In Esplora oggetti espandere Gestione, fare clic con il pulsante destro del mouse su Gestione criteri, e scegliere Gestione categorie.

  2. Nella finestra di dialogo Gestione categorie di criteri individuare la categoria Finance e selezionare la casella di controllo Imponi sottoscrizioni di database per la categoria.

  3. Seleziona OK. La categoria Finance si applica ora a tutti i database, ma la condizione creata in precedenza limita la policy di Nome Finance al database Finance. Questo mostra come è possibile utilizzare combinazioni complesse di condizioni per indirizzare i criteri in modo che si applichino correttamente su molti server.

Riepilogo

In questa esercitazione è stato illustrato come creare condizioni, criteri e gruppi di criteri della gestione basata su criteri e come applicare filtri e verificare la conformità delle destinazioni della gestione basata su criteri.

Avanti

L'esercitazione è completata. Per tornare all'inizio, vedere Esercitazione: Amministrazione di server tramite la gestione basata su criteri.

Per un elenco delle esercitazioni, vedere Esercitazioni di SQL Server 2016.

Vedi anche

Amministrazione di server tramite la gestione basata su criteri