Condividi tramite


ALTER MASTER KEY (Transact-SQL)

Modifica le proprietà di una chiave master del database.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • PASSWORD ='password'
    Specifica una password con la quale crittografare o decrittografare la chiave master del database. password deve soddisfare i criteri password Windows del computer che sta eseguendo 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.

In SQL Server 2012 viene utilizzato l'algoritmo 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 aver aggiornato un'istanza del Motore di database a SQL Server 2012 le chiavi SMK e DMK devono essere rigenerate per aggiornare le chiavi master ad AES. Per ulteriori informazioni sulla rigenerazione della SMK, vedere ALTER SERVICE MASTER KEY (Transact-SQL).

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

Vedere anche

Riferimento

CREATE MASTER KEY (Transact-SQL)

OPEN MASTER KEY (Transact-SQL)

CLOSE MASTER KEY (Transact-SQL)

BACKUP MASTER KEY (Transact-SQL)

RESTORE MASTER KEY (Transact-SQL)

DROP MASTER KEY (Transact-SQL)

CREATE DATABASE (Transact-SQL)

Concetti

Gerarchia di crittografia

Collegamento e scollegamento di un database (SQL Server)