Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
- Instale o SQL Server Management Studio.
- Instale SQL Server 2017 Developer Edition.
Criar a base de dados de Finanças
No Management Studio, abra uma janela de consulta e execute a seguinte instrução:
CREATE DATABASE Finance ; GONo 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
- 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.
Na caixa de diálogo Criar Nova Condição , na caixa de Nome , escreva Tabelas Financeiras.
- Na lista de Facet, selecione Nome Multiparte.
- 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. - 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.
Criar a política de nomenclatura de Finanças
- No Explorador de Objetos, clique com o botão direito em Políticas e depois clique em Nova Política.
Na caixa de diálogo Criar Nova Política , na caixa de Nome , escreva Nome Financeiro.
- Na lista de condições de verificação , selecione Tabelas Financeiras. Isto está na área de Multipart Name.
- 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.
- Selecione a lista Ativada . (A caixa Ativada não se aplica a políticas On Demand .)
- 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.
- Na lista de restrições do servidor, selecione Nenhum.
- Na página de Descrição , adicione a descrição 'Os nomes das tabelas na base de dados de Finanças devem conter 'fintbl%'.'
- Volte à página Geral e, na área de Cada Base de Dados , expanda Cada, e depois clique em Nova condição.
Na caixa de diálogo Criar Nova Condição , na caixa de Nome , escreva Base de Dados Financeira.
- 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.
Observação
Talvez tenhas de sair da caixa de Valor para ativar o botão OK .
Selecione OK.
Criar a categoria de política de Finanças
- 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.
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.
Selecione OK.
Subscreva a categoria de política financeira
- 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.
- Selecione a caixa de seleção Subscrito para a categoria finanças.
- Selecione OK.
Testar a aplicação da política Finance Name
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) ; GONote 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.
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) ; GODesta vez, a mesa foi criada.
Aplique a política a todo o servidor
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.
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.
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