Partilhar via


Lição 2: Criar e Aplicar uma Política de Normas de Nomeação

Aplica-se a:SQL Server

Alguns tipos de políticas de Gestão Baseada em Políticas podem criar gatilhos para garantir o cumprimento futuro da política. Nesta lição, cria uma política que aplica um padrão de nomeação para tabelas. Depois, testa a política tentando criar uma tabela que a viole.

Pré-requisitos

Para completar este tutorial, precisas do SQL Server Management Studio, acesso a um servidor que executa SQL Server.

Criar a base de dados de Finanças

  1. No Management Studio, abra uma janela de consulta e execute a seguinte instrução:

    CREATE DATABASE Finance ;  
    GO  
    
  2. No Explorador de Objetos, clique em Bases de Dados e depois pressione F5 para atualizar a lista de bases de dados.

Condicionar a criação das tabelas de finanças

  1. No Object Explorer, expanda Gestão, expanda Gestão de Políticas, clique com o botão direito em Condições e depois clique em Nova Condição.

Nova condição

  1. Na caixa de diálogo Criar Nova Condição , na caixa de Nome , escreva Tabelas Financeiras.

    1. Na lista de Facet, selecione Nome Multiparte.
    2. Na área de Expressão, na caixa de Campo, selecione @Name; na caixa Operador, selecione Like; e na caixa Valor, escreva 'fintbl%' para forçar que todos os nomes de tabelas comecem com as letras fintbl.
    3. Na página de Descrição , escreva Os nomes da tabela Financeira devem começar por fintbl e depois clique em OK para criar a condição.

    Condição das tabelas financeiras

Criar a política de nomenclatura de Finanças

  1. No Explorador de Objetos, clique com o botão direito em Políticas e depois clique em Nova Política.

Nova política

  1. Na caixa de diálogo Criar Nova Política , na caixa de Nome , escreva Nome Financeiro.

    1. Na lista de condições de verificação , selecione Tabelas Financeiras. Isto está na área de Multipart Name.
    2. Na área Contra , verá uma lista dos objetos da base de dados que poderiam aplicar esta política. Seleciona a caixa de seleção para Todas as Tabelas.
    3. Selecione a lista Ativada . (A caixa Ativada não se aplica a políticas On Demand .)
    4. Na lista Modo de Avaliação, selecione Ao alterar: impedir. Isto fará cumprir a política ao criar um trigger na base de dados Finance.
    5. Na lista de restrições do servidor, selecione Nenhum.
    6. Na página de Descrição , adicione a descrição 'Os nomes das tabelas na base de dados de Finanças devem conter 'fintbl%'.'
    7. Volte à página Geral e, na área de Cada Base de Dados , expanda Cada, e depois clique em Nova condição.

    Criar nova política de Nome Financeiro

  2. Na caixa de diálogo Criar Nova Condição , na caixa de Nome , escreva Base de Dados Financeira.

    1. Na caixa de Expressão , complete a expressão para incluir @Name = 'Finanças' e depois clique em OK para fechar a página de condições.

    Criar nova condição de 'base de dados financeira'

    Observação

    Talvez tenhas de sair da caixa de Valor para ativar o botão OK .

  3. Selecione OK.

Criar a categoria de política de Finanças

  1. No Explorador de Objetos, expanda a Gestão, clique com o botão direito em Gestão de Políticas e depois clique em Gerir Categorias.

Gerir categorias

  1. Na caixa de diálogo Gerir Categorias de Políticas, em Nome, escreva Finanças na caixa em branco e depois desmarque Mandatos de Subscrições da Base de Dados. Obrigatoriedade de Subscrição de Políticas de Base de Dados irá forçar todas as bases de dados da instância a cumprir as políticas que pertencem a esta categoria de política. Para esta lição, apenas a base de dados de Finanças deve subscrever a política de Nome Financeiro.

    Gestão de categorias de apólices

  2. Selecione OK.

Subscreva a categoria de política financeira

  1. No Explorador de Objetos, expanda Bases de Dados, clique com o botão direito em Finanças, aponte para Políticas e depois clique em Categorias.

Categorias de políticas financeiras

  1. Selecione a caixa de seleção Subscrito para a categoria finanças.

Subscreve à política financeira

  1. Selecione OK.

Testar a aplicação da política Finance Name

  1. No Management Studio, abra uma janela de consulta. Execute as seguintes instruções que tentam criar uma tabela que viole a política Nome da Finança. A tabela viola a política porque o nome da tabela não começa com as letras fintbl.

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

    Note que a política impede a criação da tabela e devolve uma mensagem informativa que fornece o nome da política.

  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. Para fornecer um nome válido, modifique o código da seguinte forma e execute novamente a instrução.

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

    Desta vez, a mesa foi criada.

Aplique a política a todo o servidor

  1. Atualmente, apenas a base de dados de Finanças subscreve a categoria de política de Finanças. Em muitos casos, é mais fácil aplicar a categoria de política a todo o servidor. No Explorador de Objetos, expanda a Gestão, clique com o botão direito em Gestão de Políticas e depois clique em Gerir Categorias.

  2. Na caixa de diálogo Gerir Categorias de Políticas, localize a categoria Finanças e selecione a caixa de seleção Subscrições de Base de Dados Obrigatórias para a categoria Finanças.

  3. Selecione OK. Agora, a categoria Finanças aplica-se a todas as bases de dados, mas a condição que criou restringe a política de Nome Financeiro à base de dados de Finanças. Isto mostra como se podem usar combinações complexas de condições para direcionar políticas de formas que se aplicam corretamente em muitos servidores.

Resumo

Este tutorial mostrou-lhe como criar condições, políticas e grupos de políticas de Gestão Baseada em Políticas, bem como aplicar filtros e verificar a conformidade das metas de Gestão Baseada em Políticas.

Next

Este tutorial está concluído. Para regressar ao início, visite o Tutorial: Administrar Servidores através da Gestão Baseada em Políticas.

Para uma lista de tutoriais, consulte Tutoriais para SQL Server 2016.

Ver também

Administrar servidores usando o gerenciamento baseado em políticas