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.
- Instalar o SQL Server Management Studio.
- Instalar o SQL Server 2017 Developer Edition.
Criar o banco de dados Finance
Em Management Studio, abra um período de consulta e execute a seguinte instrução:
CREATE DATABASE Finance ; GO
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
- 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.
Na caixa de diálogo Criar Nova Condição , na caixa Nome , digite Tabelas de Finanças.
- Na lista Faceta , selecione Nome com Diversas Partes.
- 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. - 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.
Criar a política de nome de Finance
- No Pesquisador de Objetos, clique com o botão direito do mouse em Políticase clique em Nova Política.
Na caixa de diálogo Criar Nova Política , na caixa Nome , digite Nome de Finanças.
- Na lista Verificar condição , selecione Tabelas de Finanças. Isso está na área Nome com Diversas Partes .
- 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.
- Selecione a lista Habilitado . (A caixa Habilitado não se aplica a políticas Sob Demanda .)
- 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.
- Na lista Restrição de servidor , selecione Nenhum.
- Na página Descrição, adicione a descrição "Nomes de tabela no banco de dados Finance devem conter 'fintbl%'."
- Volte à página Geral e, na área Cada Banco de Dados, expanda Tudo e clique em Nova condição.
Na caixa de diálogo Criar Nova Condição , na caixa Nome , digite Banco de Dados de Finanças.
- Na caixa Expressão, complete a expressão para incluir @Name = 'Finance' e clique em OK para fechar a página de condição.
Observação
Você poderia ter a guia fora da caixa Valor para habilitar o botão OK .
Selecione OK.
Criar a categoria da política de Finance
- Em Pesquisador de Objetos, expanda Gerenciamento, clique com o botão direito do mouse em Gerenciamento de Políticae clique em Gerenciar Categorias.
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.
Selecione OK.
Assinar a categoria de políticas de Finance
- 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.
- Selecione a caixa de seleção Assinado da categoria Finanças .
- Selecione OK.
Testar a imposição da política de nome de Finance
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.
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
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.
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.
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