Administrando servidores com Gerenciamento Baseado em Políticas

Gerenciamento Baseado em Políticas é um sistema para gerenciar uma ou mais instâncias do SQL Server 2008. Quando os administradores de políticas do SQL Server usam o Gerenciamento Baseado em Políticas, eles usam o SQL Server Management Studio para criar políticas para gerenciar entidades no servidor, como as instâncias do SQL Server, bancos de dados ou outros objetos do SQL Server.

O Gerenciamento Baseado em Políticas tem três componentes:

  • Gerenciamento de política

    Os administradores de políticas criam políticas.

  • Administração explícita

    Os administradores selecionam um ou mais destinos gerenciados e verificam explicitamente se eles estão de acordo com uma política específica, ou explicitamente fazem com que os destinos estejam de acordo com uma política.

  • Modos de avaliação

    Há quatro modos de avaliação, três dos quais podem ser automatizados:

    • Sob demanda. Este modo avalia a política quando especificado diretamente pelo usuário.

    • Ao alterar: impedir. Esse modo automatizado usa gatilhos DDL para impedir violações de política.

      Observação importanteImportante

      Se a opção de configuração do servidor nested triggers for desabilitada, Ao alterar: impedir não funcionará corretamente. O Gerenciamento Baseado em Políticas necessita de gatilhos DDL para detectar e reverter operações de DDL que não estejam em conformidade com políticas que usam este modo de avaliação. Remover os gatilhos DDL do Gerenciamento Baseado em Políticas ou desabilitar os gatilhos aninhados fará com que este modo de avaliação falhe ou execute de forma inesperada.

    • Ao alterar: log apenas. Este modo automatizado usa a notificação de eventos para avaliar uma política quando uma alteração relevante é feita.

    • Ao agendar. Este modo automatizado usa um trabalho do SQL Server Agent para avaliar periodicamente uma política.

    Quando as políticas automatizadas não estão habilitadas, o Gerenciamento Baseado em Políticas não afetará o desempenho do sistema.

    ObservaçãoObservação

    Quando o sistema computar o conjunto de objetos de uma política, por padrão, os objetos do sistema serão excluídos. Por exemplo, se o conjunto de objetos da política se referir a todas as tabelas, a política não se aplicará às tabelas do sistema. Se os usuários quiserem avaliar uma política em relação aos objetos do sistema, eles poderão adicionar objetos do sistema explicitamente ao conjunto de objetos. No entanto, embora todas as políticas tenham suporte para o modo de avaliação de verificação de agenda, por motivos de desempenho, nem todas as políticas com conjuntos de objetos arbitrários têm suporte para o modo de avaliação de verificação de alterações. Para obter mais informações, consulte https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

Termos e conceitos do Gerenciamento Baseado em Políticas

  • Destino gerenciado pelo Gerenciamento Baseado em Políticas
    As entidades gerenciadas pelo Gerenciamento Baseado em Políticas, como uma instância do Mecanismo de banco de dados do SQL Server, um banco de dados, uma tabela ou um índice. Todos os destinos em uma instância de servidor formam uma hierarquia de destino. Um conjunto de destino é aquele resultante da aplicação de um conjunto de filtros de destino à hierarquia de destino. Por exemplo, todas as tabelas do banco de dados de propriedade do esquema HumanResources.

  • Faceta do Gerenciamento Baseado em Políticas
    Um conjunto de propriedades lógicas que modelam o comportamento ou as características de certos tipos de destinos gerenciados. O número e as características das propriedades são incorporados à faceta e só podem ser adicionados ou removidos pelo criador da faceta. Um tipo de destino pode implementar uma ou mais facetas de gerenciamento, e uma faceta de gerenciamento pode ser implementada por um ou mais tipos de destino. Algumas propriedades de uma faceta só podem ser aplicadas a uma versão específica. Por exemplo, a propriedade Database Mail da faceta Configuração da Área da Superfície só se aplica ao SQL Server 2005 e versões posteriores.

  • Condição de Gerenciamento Baseado em Políticas
    Uma expressão booleana que especifica um conjunto de estados permitidos de um destino gerenciado pelo Gerenciamento Baseado em Políticas em relação a uma faceta de gerenciamento.

  • Política de Gerenciamento Baseado em Políticas
    Uma condição do Gerenciamento Baseado em Políticas e o comportamento esperado, como, por exemplo, modo de avaliação, filtros de destino e agenda. Uma política só pode conter uma condição. As políticas podem ser habilitadas ou desabilitadas.

  • Categoria de política do Gerenciamento Baseado em Políticas
    Uma categoria definida pelo usuário para ajudar a gerenciar políticas. Os usuários podem classificar as políticas em categorias diferentes. Uma política pertence a somente uma categoria. Categorias de políticas se aplicam a bancos de dados e servidores. No nível de banco de dados, as seguintes condições se aplicam:

    • Os proprietários de banco de dados podem assinar um conjunto de categorias de política para um banco de dados.

    • Somente as políticas das categorias assinadas podem governar um banco de dados.

    • Todos os bancos de dados assinam implicitamente a categoria de política padrão.

    No nível de servidor, é possível aplicar categorias de políticas a todos os bancos de dados.

  • Política efetiva
    As políticas efetivas de um destino são aquelas que governam esse destino. Uma política só será efetiva em relação a um destino se todas as seguintes condições forem satisfeitas:

    • A política está habilitada.

    • O destino pertence ao conjunto de destino da política.

    • O destino ou um dos destinos ancestrais assina o grupo de políticas que contém essa política.

Exemplos de problemas resolvidos com o Gerenciamento Baseado em Políticas

O Gerenciamento Baseado em Políticas seria útil na solução dos problemas apresentados nos seguintes cenários:

  • Uma política de empresa proíbe a habilitação do Database Mail ou do SQL Mail. Uma política é criada para verificar o estado do servidor desses dois recursos. Um administrador compara o estado do servidor com a política. Se o estado estiver fora de conformidade, o administrador escolherá o modo Configurar e a política providenciará a compatibilidade do estado do servidor.

  • O banco de dados AdventureWorks2008R2 tem uma convenção de nomenclatura que requer que todos os procedimentos armazenados comecem com as letras AW_. Uma política é criada para impor essa política. Um administrador testa essa política e recebe uma lista de procedimentos armazenados que estão fora de conformidade. Se os procedimentos armazenados futuros não estiverem em conformidade com essa convenção de nomenclatura, haverá falha nas instruções de criação dos procedimentos armazenados.

Modos de avaliação permitidos

Os modos de avaliação de políticas são determinados pelas características da faceta de Gerenciamento Baseado em Políticas usadas pela política. Todas as facetas suportam Sob Demanda e Ao agendar. As facetas suportam Ao alterar: log apenas se a alteração do estado da faceta puder ser capturada por alguns eventos. As facetas suportam Ao alterar: impedir se houver um suporte transacional para as instruções DDL que alteram o estado da faceta. As políticas que são automatizadas com um desses três modos de execução podem ser habilitadas e desabilitadas.

No SQL Server Management Studio, a caixa de diálogo Avaliar Políticas fornece duas opções que você pode usar para executar uma política:

  • Avaliar
    Avalia políticas contra os destinos selecionados.

  • Aplicar
    Permite aplicar alterações em destinos aplicáveis que violam políticas. Não é possível reconfigurar alguns destinos através do Gerenciamento Baseado em Políticas. Por exemplo, se você estiver avaliando se há arquivos de dados e o backup em dispositivos separados, o Gerenciamento Baseado em Políticas pode detectar violações a essa condição; entretanto, você não pode aplicar alterações através do Gerenciamento Baseado em Políticas para forçar a conformidade à política.

Gerenciamento de política

As políticas são criadas e gerenciados com o uso do Management Studio. O processo inclui as seguintes etapas:

  1. Selecionar uma faceta de Gerenciamento Baseado em Política que contenha as propriedades a serem configuradas.

  2. Definir uma condição que especifique o estado de uma faceta de gerenciamento.

  3. Definir uma política que contenha uma condição, as condições adicionas que filtram os conjuntos de destino e o modo de avaliação.

  4. Verificar se uma instância do SQL Server está em conformidade com a política.

Para as políticas com falha, o Pesquisador de Objetos indica um aviso de integridade crítica como um ícone vermelho ao lado do destino e dos nós superiores da árvore do Pesquisador de Objetos.

Armazenamento de Políticas

As políticas são armazenadas no banco de dados msdb. Após a alteração de uma política ou condição, deve ser feito backup do msdb. Para obter mais informações, consulte Considerações sobre backup de bancos de dados modelo e msdb.

O SQL Server 2008 inclui políticas que podem ser usadas para monitorar uma instância do SQL Server. Por padrão, essas políticas não são instaladas no Mecanismo de Banco de Dados; no entanto, elas podem ser importadas do local de instalação padrão C:\Arquivos de Programas\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1046. Para obter mais informações, consulte Como exportar e importar uma diretiva do Gerenciamento Baseado em Diretivas.

Você pode criar políticas diretamente usando o menu Arquivo/Novo e salvá-las em um arquivo. Isso permite criar políticas quando você não estiver conectado a uma instância do Mecanismo de Banco de Dados.

O histórico de políticas avaliadas na instância atual do Mecanismo de Banco de Dados é mantido em tabelas do sistema de msdb. O histórico de políticas aplicadas a outras instâncias do Mecanismo de Banco de Dados ou aplicadas ao Reporting Services ou ao Analysis Services não é retido. Para obter mais informações, consulte Solucionando problemas de diretivas do Gerenciamento Baseado em Diretivas.

Configurando alertas para notificar os administradores de políticas sobre falhas

Quando as políticas do Gerenciamento Baseado em Políticas são executadas em um dos três modos de avaliação automatizados, se ocorrer uma violação de política, uma mensagem será gravada no log de eventos. Para ser notificado quando essa mensagem for gravada no log de eventos, você pode criar um alerta para detectar a mensagem e executar uma ação. O alerta deve detectar as mensagens como mostra a tabela a seguir.

Modo de execução

Número da mensagem

Ao alterar: impedir

(se automático)

34050

Ao alterar: impedir

(se por demanda)

34051

Ao agendar

34052

Ao alterar

34053

Para configurar um alerta para responder às mensagens de erro do Gerenciamento Baseado em Políticas, consulte os seguintes tópicos:

Considerações adicionais sobre alertas

Esteja atento às seguintes considerações adicionais sobre alertas:

  • Os alertas só são gerados para políticas que estiverem habilitadas. Como as políticas Sob demanda não podem ser habilitadas, não são gerados alertas para políticas executadas sob demanda.

  • Se a ação que você deseja executar incluir o envio de um email, você deverá configurar uma conta de email. É recomendável usar o Database Mail. Para obter mais informações sobre como configurar o Database Mail, consulte Como criar contas do Database Mail (Transact-SQL).

  • Segurança de alerta:

    Quando as políticas são avaliadas por demanda, elas são executadas no contexto de segurança do usuário. Para gravar no log de erros, o usuário deve ter permissões ALTER TRACE ou ser um membro da função de servidor fixa sysadmin. As políticas avaliadas por um usuário com menos privilégios não gravarão no log de eventos e não irão disparar um alerta.

    Os modos de execução automatizados são executados como um membro da função sysadmin. Isso permite que a política grave no log de erros e gere um alerta.

Segurança

A administração do Gerenciamento Baseado em Políticas requer a associação na função PolicyAdministratorRole no banco de dados msdb. Essa função tem controle completo de todas as políticas do sistema. Esse controle inclui a criação e edição de políticas e condições, além da habilitação e desabilitação de políticas.

Observação sobre segurançaObservação sobre segurança

Possível elevação de credenciais: os usuários na função PolicyAdministratorRole podem criar gatilhos de servidor e agendar execuções de políticas que possam afetar a operação da instância do Mecanismo de Banco de Dados. Por exemplo, a função PolicyAdministratorRole pode criar uma política que impeça a criação da maioria dos objetos no Mecanismo de Banco de Dados. Devido a essa possível elevação de credenciais, a função PolicyAdministratorRole deve ser concedida somente aos usuários que sejam confiáveis no controle da configuração do Mecanismo de Banco de Dados.

Os seguintes princípios de segurança se aplicam:

  • Um administrador de sistema ou proprietário de banco de dados pode assinar uma política ou um grupo de políticas para um banco de dados.

  • Os membros da função PolicyAdministratorRole podem habilitar ou desabilitar políticas.

  • Os membros da função PolicyAdministratorRole podem criar políticas que eles não têm permissão para executar ad hoc, mas que podem ser bem sucedidas quando forem executadas por outros usuários que tenham permissão suficiente.

    Observação sobre segurançaObservação sobre segurança

    Possível elevação de credenciais: os usuários na função PolicyAdministratorRole podem criar políticas que contenham uma condição que use a função ExecuteSql ou ExecuteWql. Se um usuário que tenha permissões sysadmin executar posteriormente a política, o Transact-SQL fornecido pelo Administrador de Políticas será executado com a permissão sysadmin do usuário que a estiver executando.

  • A execução de política ad hoc ocorre no contexto de segurança do usuário.

  • Políticas com o modo de avaliação Ao agendar usam os trabalhos do SQL Server Agent de propriedade do logon de sa.

Considerações ao usar o Gerenciamento Baseado em Políticas

Esteja ciente que as políticas podem afetar como alguns recursos do SQL Server funcionam. Por exemplo, a captura de dados de alterações e a replicação transacional usam uma tabela systranschemas que não possui um índice. Se você habilitar uma política em que todas as tabelas devem ter um índice, forçar a conformidade com a política fará com que estes recursos falhem.