Condividi tramite


ALTER MASTER KEY (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric

Modifica le proprietà di una chiave master del database.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

Sintassi per SQL Server

-- 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' }

Sintassi per database SQL di Azure e database SQL in Microsoft Fabric

-- 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' }

Sintassi per Azure Synapse Analytics e piattaforma di strumenti analitici (PDW)

-- 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

Argomenti

PASSWORD ='password'

Specifica una password con cui crittografare o decrittografare la chiave master del database. password deve soddisfare i requisiti per i 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. Questa operazione a elevato utilizzo di risorse deve essere pianificata durante un periodo di bassa domanda, a meno che la chiave master non venga 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), è necessario rigenerare SMK e DMK per aggiornare le chiavi master a AES. Per altre informazioni sulla rigenerazione della SMK, vedere ALTER SERVICE MASTER KEY.

Quando si usa l'opzione FORCE, la rigenerazione della chiave continua anche se la chiave master non è disponibile o il server non può 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 solo da una chiave irretrievabile vengono perse.

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.

DROP ENCRYPTION BY SERVICE MASTER KEY non è supportato in database SQL di Azure.

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 è crittografata con una password, è necessaria anche la conoscenza di 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. Sostituire <secure password> con una password complessa e univoca.

USE AdventureWorks2022;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (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. Sostituire <secure password> con una password complessa e univoca.

USE master;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = '<secure password>';
GO