catalogo.pulizia_chiavi_esecuzione_server

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Si applica a:SQL Server

Elimina certificati e chiavi simmetriche dal database SSISDB.

Sintassi

catalog.cleanup_server_execution_keys [ @cleanup_flag = ] cleanup_flag ,  
[ @delete_batch_size = ] delete_batch_size  

Argomenti

[ @cleanup_flag = ] cleanup_flag
Indica se i certificati e le chiavi simmetriche a livello di esecuzione (1) o di progetto (2) devono essere eliminati.

Usare il livello di esecuzione (1) solo se SERVER_OPERATION_ENCRYPTION_LEVEL è impostato su PER_EXECUTION (1).

Usare il livello di progetto (2) solo se SERVER_OPERATION_ENCRYPTION_LEVEL è impostato su PER_PROJECT (2). I certificati e le chiavi simmetriche vengono rilasciati solo per i progetti eliminati per cui sono stati cancellati i log delle operazioni.

[ @delete_batch_size = ] delete_batch_size
Numero di chiavi e certificati da eliminare. Il valore predefinito è 1000.

Valori del codice restituito

0 per esito positivo e 1 per esito negativo.

Set di risultati

Nessuno.

Autorizzazioni

Per questa stored procedure è necessaria una delle autorizzazioni seguenti:

  • Autorizzazioni READ ed EXECUTE per il progetto e, se applicabile, autorizzazioni READ per l'ambiente a cui si fa riferimento.

  • Appartenenza al ruolo del database ssis_admin.

  • Appartenenza al ruolo del server sysadmin.

Errori e avvisi

La stored procedure genera degli errori negli scenari seguenti:

  • Almeno una operazione è attiva nel database SSISDB.

  • Il database SSISDB non è in modalità utente singolo.

Osservazioni:

In SQL Server 2012 Service Pack 2 è stata aggiunta la proprietà SERVER_OPERATION_ENCRYPTION_LEVEL alla tabella internal.catalog_properties. Per questa proprietà sono possibili due valori:

  • PER_EXECUTION (1): il certificato e la chiave simmetrica usati per la protezione dei parametri e dei log di esecuzione riservati vengono creati per ogni esecuzione. Questo è il valore predefinito. Dal momento che i certificati e le chiavi vengono generati per ogni esecuzione, è possibile riscontrare problemi di prestazioni (deadlock, mancata riuscita di processi di manutenzione e così via) negli ambienti di produzione. Questa impostazione, tuttavia, offre un livello di sicurezza superiore rispetto all'altro valore (2).

  • PER_PROJECT (2): il certificato e la chiave simmetrica usati per la protezione dei parametri riservati vengono creati per ogni progetto. Questo garantisce prestazioni migliori rispetto al livello PER_EXECUTION, perché la chiave e il certificato vengono generati una sola volta per il progetto, anziché per ogni esecuzione.

Prima che tu possa modificare SERVER_OPERATION_ENCRYPTION_LEVEL da 1 a 2 o viceversa, è necessario eseguire la procedura memorizzata catalog.cleanup_server_log. Prima di eseguire questa stored procedure, effettuare i seguenti passaggi:

  1. Verificare che il valore della proprietà OPERATION_CLEANUP_ENABLED sia impostato su TRUE nella tabella catalog.catalog_properties (database SSISDB).

  2. Impostare il database di Integration Services (SSISDB) sulla modalità utente singolo. In SQL Server Management Studio avviare la finestra di dialogo Proprietà database per SSISDB, passare alla scheda Opzioni e impostare la proprietà Limitazione accesso sulla modalità utente singolo (SINGLE_USER). Dopo aver eseguito la stored procedure cleanup_server_log, riportare il valore della proprietà al valore originale.

  3. Esegui la procedura memorizzata catalog.cleanup_server_log.

  4. A questo punto modificare il valore della proprietà SERVER_OPERATION_ENCRYPTION_LEVEL nella tabella catalog.catalog_properties (database SSISDB).

  5. Eseguire la procedura memorizzata catalog.cleanup_server_execution_keys per eliminare le chiavi di certificato dal database SSISDB. Il rilascio dei certificati e delle chiavi dal database SSISDB può richiedere molto tempo. È quindi necessario eseguire questa operazione periodicamente in orario non di punta.

    È possibile specificare l'ambito o il livello (di esecuzione o di progetto) e il numero di chiavi da eliminare. La dimensione predefinita del batch per l'eliminazione è 1000. Quando si imposta il livello su 2, le chiavi e i certificati vengono eliminati solo se i progetti associati sono stati eliminati.

Esempio

L'esempio seguente chiama la procedura memorizzata 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