ALTER MASTER KEY (Transact-SQL)

Si applica a:yes SQL Server (tutte le versioni supportate) database SQL di Azure Istanza gestita di SQL di Azure YesyesAzure Synapse Analytics Analytics yesPlatform System (PDW) Yes

Modifica le proprietà di una chiave master del database.

Topic link iconConvenzioni di sintassi Transact-SQL

Sintassi

-- Syntax for SQL Server

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
-- Syntax for Azure SQL Database
-- Note: DROP ENCRYPTION BY SERVICE MASTER KEY is not supported on Azure SQL Database.

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'

<encryption_option> ::=
    ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
    |
    DROP ENCRYPTION BY { PASSWORD = 'password' }
-- Syntax for Azure Synapse Analytics and Analytics Platform System

ALTER MASTER KEY <alter_option>

<alter_option> ::=
    <regenerate_option> | <encryption_option>

<regenerate_option> ::=
    [ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD ='password'

<encryption_option> ::=
    ADD ENCRYPTION BY SERVICE MASTER KEY
    |
    DROP ENCRYPTION BY SERVICE MASTER KEY

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

PASSWORD ='password' specifica una password con cui crittografare o decrittografare la chiave master del database. password deve soddisfare i requisiti dei criteri password di Windows del computer che esegue l'istanza di SQL Server.

Osservazioni

L'opzione REGENERATE rigenera la chiave master del database e tutte le chiavi protette dalla chiave master. Le chiavi vengono prima decrittografate con la chiave master precedente e quindi crittografate con la nuova chiave master. Si tratta di un'operazione che utilizza molte risorse e pertanto dovrebbe essere pianificata in periodi di carico ridotto, a meno che la chiave master non sia stata compromessa.

SQL Server 2012 (11.x) usa l'algoritmo di crittografia AES per proteggere la chiave master del servizio (SMK) e la chiave master del database (DMK). AES è un algoritmo di crittografia più recente rispetto a 3DES utilizzato nelle versioni precedenti. Dopo l'aggiornamento di un'istanza del motore di database a SQL Server 2012 (11.x) il file SMK e DMK deve essere rigenerato per aggiornare le chiavi master a AES. Per altre informazioni sulla rigenerazione della SMK, vedere ALTER SERVICE MASTER KEY.

Quando si utilizza l'opzione FORCE, la rigenerazione delle chiavi continuerà anche se la chiave master non è disponibile o il server non è in grado di decrittografare tutte le chiavi private crittografate. Se non è possibile aprire la chiave master, usare l'istruzione RESTORE MASTER KEY per ripristinare la chiave master da un backup. Utilizzare l'opzione FORCE solo se la chiave master è irrecuperabile o se la decrittografia ha esito negativo. Le informazioni crittografate esclusivamente da una chiave irrecuperabile andranno perdute.

L'opzione DROP ENCRYPTION BY SERVICE MASTER KEY rimuove l'impostazione per la crittografia della chiave master del database tramite la chiave master del servizio.

Con ADD ENCRYPTION BY SERVICE MASTER KEY una copia della chiave master viene crittografata utilizzando la chiave master del servizio e archiviata sia nel database corrente che nel database master.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per il database. Se la chiave master del database è stata crittografata con una password è inoltre necessario conoscere tale password.

Esempi

Nell'esempio seguente viene creta una nuova chiave master del database per AdventureWorks e vengono di nuovo crittografate le chiavi figlio corrispondenti nella gerarchia di crittografia.

USE AdventureWorks2012;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO

Esempi: Azure Synapse Analytics e Analytics Platform System (PDW)

Nell'esempio seguente viene creta una nuova chiave master del database per AdventureWorksPDW2012 e vengono di nuovo crittografate le chiavi figlio corrispondenti nella gerarchia di crittografia.

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO

Vedere anche