Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 uma janela de consulta e execute a seguinte instrução:
CREATE DATABASE Finance ; GONo 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
- 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 para 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 Todas as Tabelas.
- Selecione a lista Ativado. (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ê pode ter que sair da caixa Valor para habilitar o botão OK.
Selecione OK.
Criar a categoria da política de Finanças
- 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çã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.
Selecione OK.
Assinar a categoria de políticas de Finanças
- 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 Inscrito na categoria Finanças.
- Selecione OK.
Testar a aplicação da política de nome do Finance
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) ; GOObserve 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) ; GONeste momento, a tabela é criada.
Aplicar a política ao servidor inteiro
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.
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 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