catalog.cleanup_server_execution_keys
Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory
Aplica-se a: SQL Server
Remove certificados e chaves simétricas do banco de dados SSISDB.
Sintaxe
catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,
[ @delete_batch_size = ] delete_batch_size
Argumentos
[ @cleanup_flag = ] cleanup_flag
Indica se os certificados e chaves simétricas no nível de execução (1) ou no nível do projeto (2) devem ser descartados.
Use o nível de execução (1) somente quando o SERVER_OPERATION_ENCRYPTION_LEVEL está definido como PER_EXECUTION (1).
Use o nível de projeto (2) somente quando o SERVER_OPERATION_ENCRYPTION_LEVEL está definido como PER_PROJECT (2). Certificados e chaves simétricas são removidas apenas para projetos que foram excluídos e para os quais os logs de operação foram limpos.
[ @delete_batch_size = ] delete_batch_size
O número de chaves e certificados a serem removidos. O valor padrão é 1000.
Valores do código de retorno
0 para êxito e 1 para falha.
Conjuntos de resultados
Nenhum.
Permissões
Este procedimento armazenado exige uma das seguintes permissões:
Permissões READ e EXECUTE no projeto e, se aplicável, permissões READ no ambiente referenciado.
Associação na função de banco de dados ssis_admin.
Associação à função de servidor sysadmin.
Erros e avisos
Esse procedimento armazenado gera erros nos seguintes cenários:
Há uma ou mais operações ativas no banco de dados SSISDB.
O banco de dados SSISDB não está no modo de usuário único.
Comentários
SQL Server 2012 Service Pack 2 adicionou a propriedade SERVER_OPERATION_ENCRYPTION_LEVEL à tabela internal.catalog_properties. Essa propriedade tem dois valores possíveis:
PER_EXECUTION (1) – O certificado e a chave simétrica usados para proteger parâmetros de execução e logs de execução confidenciais são criados para cada execução. Esse é o valor padrão. Talvez você tenha problemas de desempenho (deadlocks, trabalhos de manutenção com falha, etc.) em um ambiente de produção porque chaves/certificado são gerados para cada execução. No entanto, essa configuração fornece um nível maior de segurança que o outro valor (2).
PER_PROJECT (2) – O certificado e a chave simétrica usados para proteger parâmetros confidenciais são criados para cada projeto. Isso oferece um desempenho melhor do que o nível PER_EXECUTION porque a chave e o certificado são gerados uma vez para um projeto em vez de serem gerados para cada execução.
Você precisa executar o procedimento armazenado catalog.cleanup_server_log antes de alterar o SERVER_OPERATION_ENCRYPTION_LEVEL de 1 para 2 ou de 2 para 1. Você precisa fazer o seguinte antes de executar este procedimento armazenado:
Verifique se o valor da propriedade OPERATION_CLEANUP_ENABLED está definido como TRUE na tabela catalog.catalog_properties (Banco de dados SSISDB).
Defina o SSISDB (banco de dados do Integration Services) para o modo de usuário único. No SQL Server Management Studio, inicie a caixa de diálogo Propriedades do Banco de Dados do SSISDB, mude para a guia Opções e defina a propriedade Restringir Acesso para o modo de usuário único (SINGLE_USER). Depois de executar o procedimento armazenado cleanup_server_log, defina o valor da propriedade para o valor original.
Execute o procedimento armazenado catalog.cleanup_server_log.
Agora, vá em frente e altere o valor da propriedade SERVER_OPERATION_ENCRYPTION_LEVEL na tabela catalog.catalog_properties (Banco de dados SSISDB).
Execute o procedimento armazenado catalog.cleanup_server_execution_keys para limpar as chaves de certificado do banco de dados SSISDB. Descartar certificados e chaves de banco de dados SSISDB pode levar muito tempo, então isso deve ser executado periodicamente fora dos horários de pico.
Você pode especificar o escopo ou o nível (execução versus projeto) e o número de chaves a serem excluídas. O tamanho de lote padrão para exclusão é 1000. Quando você define o nível para 2, as chaves e certificados serão excluídos somente se os projetos associados foram excluídos.
Para obter mais informações, veja o artigo da Base de Dados de Conhecimento a seguir. CORREÇÃO: Problemas de desempenho ao usar o SSISDB como o repositório de implantação no SQL Server 2012
Exemplo
O exemplo a seguir chama o procedimento armazenado cleanup_server_execution_keys.
USE [SSISDB]
GO
DECLARE@return_value int
EXEC@return_value = [internal].[cleanup_server_execution_keys]
@cleanup_flag = 1,
@delete_batch_size = 500
SELECT'Return Value' = @return_value
GO