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

Si applica a:SQL Server

Alcuni tipi di criteri della gestione basata su criteri possono creare trigger per l'applicazione della conformità successiva tramite i criteri. 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 Tabelle Finance

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

New condition

  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.

    Finance tables condition

Creare i criteri Nome Finance

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

New policy

  1. Nella finestra di dialogo Crea nuovi criteri , nella casella Nome digitare Nome Finance.

    1. Nell'elenco Condizione di controllo selezionare Tabelle Finance. Questa opzione è disponibile nell'area Nome a più parti .
    2. Nell'area In base a viene visualizzato un elenco di oggetti di database che hanno applicato i criteri. Selezionare la casella di controllo Ogni tabella.
    3. Selezionare l'elenco Abilitato . (La casella Abilitato non si applica ai criteri Su richiesta .)
    4. Nell'elenco Modalità di valutazione selezionare Su modifica: impedisci esecuzione. 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.

    Create new Finance Name policy

  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.

    Create new 'finance database' condition

    Nota

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

  3. Seleziona OK.

Creare la categoria di criteri Finance

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

Manage categories

  1. Nella finestra di dialogo Gestione categorie di criteri , in Nomedigitare Finance nella casella vuota e quindi deselezionare Imponi sottoscrizioni di database. ConImponi sottoscrizioni di database ogni database nell'istanza verrà forzato alla sottoscrizione dei criteri appartenenti alla categoria di criteri. Ai fini di questa lezione, solo il database Finance deve sottoscrivere i criteri Nome Finance.

    Manage policy categories

  2. Seleziona OK.

Sottoscrivere la categoria di criteri Finance

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

Finance policy categories

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

Subscribed to finance policy

  1. Seleziona OK.

Verificare l'applicazione dei criteri Nome Finance

  1. In Management Studio aprire una finestra di query. Eseguire le istruzioni seguenti che consentono di creare una tabella che viola i criteri 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 modifica consente la creazione della tabella.

Applicare i criteri all'intero server

  1. Solo il database Finance sottoscrive attualmente la categoria di criteri 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 criterie 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 i criteri Nome Finance al database Finance. In questo esempio viene illustrato come utilizzare combinazioni complesse di condizioni per i criteri in modalità valide per 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