Lição 2: Criar e Aplicar uma Política de Padrões de Nomeação

Aplica-se a:SQL Server

Alguns tipos de políticas de Gerenciamento Baseado em Políticas podem criar gatilhos para aplicar conformidade futura com a política. Nesta lição, você cria uma política que aplica uma nomeação padrão para tabelas. Então, você testa a política tentando criar uma tabela que viola a política.

Pré-requisitos

Para concluir este tutorial, é necessário ter o SQL Server Management Studio e acesso a um servidor que está executando o SQL Server.

Criar o banco de dados Finance

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

    CREATE DATABASE Finance ;  
    GO  
    
  2. No Pesquisador de Objetos, clique em Bancos de Dadose, em seguida, pressione F5 para atualizar a lista de bancos de dados.

Criar a condição para as tabelas de Finanças

  1. No Pesquisador de Objetos, expanda Gerenciamento, Gerenciamento de Política, clique com o botão direito do mouse em Condiçõese clique em Nova Condição.

Nova condição

  1. Na caixa de diálogo Criar Nova Condição , na caixa Nome , digite Tabelas de Finanças.

    1. Na lista Faceta , selecione Nome com Diversas Partes.
    2. Na área Expressão, na caixa Campo, selecione @Name; na caixa Operador, selecione Like; na caixa Valor, digite 'fintbl%' para forçar todos os nomes da tabela a começar com as letras fintbl.
    3. Na página Descrição , digite Os nomes da tabela de Finanças deve começar com fintble, em seguida, clique em OK para criar a condição.

    Condição de tabelas financeiras

Criar a política de nome para Finance

  1. No Pesquisador de Objetos, clique com o botão direito do mouse em Políticase clique em Nova Política.

Nova política

  1. Na caixa de diálogo Criar Nova Política , na caixa Nome , digite Nome de Finanças.

    1. Na lista Verificar condição , selecione Tabelas de Finanças. Isso está na área Nome com Diversas Partes .
    2. Na área Contra você verá uma lista dos objetos de banco de dados que poderiam aplicar essa política. Selecione a caixa de seleção para Todas as Tabelas.
    3. Selecione a lista Ativado. (A caixa Habilitado não se aplica a políticas sob demanda.)
    4. Na lista Modo de Avaliação , selecione Ao alterar: impedir. Isso aplicará a política criando um gatilho de banco de dados no banco de dados Finanças.
    5. Na lista Restrição de servidor , selecione Nenhum.
    6. Na página Descrição, adicione a descrição "Nomes de tabela no banco de dados Finance devem conter 'fintbl%'."
    7. Volte à página Geral e, na área Cada Banco de Dados, expanda Tudo e clique em Nova condição.

    Criar nova política de nome de Finanças

  2. Na caixa de diálogo Criar Nova Condição , na caixa Nome , digite Banco de Dados de Finanças.

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

    Criar nova condição

    Observação

    Você pode ter que sair da caixa Valor para habilitar o botão OK.

  3. Selecione OK.

Criar a categoria da política de Finanças

  1. Em Pesquisador de Objetos, expanda Gerenciamento, clique com o botão direito do mouse em Gerenciamento de Políticae clique em Gerenciar Categorias.

Gerenciar categorias

  1. Na caixa de diálogo Gerenciar Categorias de Política , em Nome, digite Finanças na caixa em branco e desmarque Autorizar Assinaturas de Banco de Dados. A opção Obrigar Assinaturas de Banco de Dados forçará todos os bancos de dados na instância a se inscreverem nas políticas que pertencem a esta categoria de políticas. Para esta lição, somente o banco de dados Finanças deve aderir à política de Nomes de Finanças.

    Gerenciar categorias de política

  2. Selecione OK.

Assinar a categoria de políticas de Finanças

  1. Em Pesquisador de Objetos, expanda Bancos de Dados, clique com o botão direito do mouse em Finanças, aponte para Políticase clique em Categorias.

Categorias de política de Finanças

  1. Selecione a caixa de seleção Inscrito na categoria Finanças.

Inscrito na política de finanças

  1. Selecione OK.

Testar a aplicação da política de nome do Finance

  1. Abra uma janela de consulta no Management Studio. Execute as instruções a seguir que tentam criar uma tabela que viola a política Nome Financeiro. A tabela viola a política porque o nome de tabela não começa com as letras fintbl.

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

    Observe que a política impede que a tabela seja criada e retorne uma mensagem informativa que forneça 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 como se segue e execute a instrução novamente.

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

    Neste momento, a tabela é criada.

Aplicar a política ao servidor inteiro

  1. Atualmente, apenas o banco de dados de Finanças está inscrito na categoria de política de Finanças. Em muitos casos, é mais fácil aplicar a categoria de política ao servidor inteiro. Em Pesquisador de Objetos, expanda Gerenciamento, clique com o botão direito do mouse em Gerenciamento de Políticae clique em Gerenciar Categorias.

  2. Na caixa de diálogo Gerenciar Categorias de Política , localize a categoria Finanças e marque a caixa de seleção Autorizar Assinaturas de Bancos de Dados para a categoria Finanças.

  3. Selecione OK. Agora a categoria Finanças se aplica a todos os bancos de dados, mas a condição que você criou restringe a política Nome de Finanças ao banco de dados Finanças. Isso demonstra como você pode usar combinações complexas de condições para direcionar políticas de maneira que elas sejam aplicadas corretamente em muitos servidores.

Resumo

Este tutorial mostrou como criar condições, políticas e grupos de políticas para o Gerenciamento Baseado em Políticas, e como aplicar filtros e verificar a conformidade dos destinos desse gerenciamento.

Próximo

Este tutorial está concluído. Para retornar ao início, visite Tutorial: Administrando servidores com o Gerenciamento Baseado em Políticas.

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

Confira também

Administrar servidores com Gerenciamento Baseado em Políticas