Lição 2: criar e aplicar uma política de nomeação de padrões

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 um período 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 de tabelas Finance

  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 Finance

Criar a política de nome de 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 Cada Tabela.
    3. Selecione a lista Habilitado . (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.

    Create nova política de nome de Finance

  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ê poderia ter a guia fora da caixa Valor para habilitar o botão OK .

  3. Selecione OK.

Criar a categoria da política de Finance

  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çãoAutorizar Assinaturas de Banco de Dados forçará todos os bancos de dados na instância a assinarem as políticas que pertencem a esta categoria de política. Para esta lição, somente o banco de dados Finanças deve assinar a política Nome Financeiro.

    Gerenciar categorias de política

  2. Selecione OK.

Assinar a categoria de políticas de Finance

  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 Finance

  1. Selecione a caixa de seleção Assinado da categoria Finanças .

Assinar a política de finanças

  1. Selecione OK.

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

  1. No Management Studio, abra um novo período de consulta. Execute as instruções a seguir que tentam criar uma tabela que viola a política Nome de Finanças . 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, o banco de dados Finanças se inscreve na categoria de política 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 mostra como você pode usar combinações complexas de políticas de destino de forma a aplicá-las corretamente em muitos servidores.

Resumo

Este tutorial mostrou como criar condições do Gerenciamento Baseado em Políticas, políticas e grupos de políticas e como aplicar filtros e verificar a compatibilidade de destinos de Gerenciamento Baseado em Políticas.

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