ALTER SYMMETRIC KEY (Transact-SQL)

Modifica le proprietà di una chiave simmetrica.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

ALTER SYMMETRIC KEY Key_name <alter_option>

<alter_option> ::=
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
   | 
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
   CERTIFICATE certificate_name
   |
   PASSWORD = 'password'
   |
   SYMMETRIC KEY Symmetric_Key_Name
   |
   ASYMMETRIC KEY Asym_Key_Name

Argomenti

  • Key_name
    Nome con il quale la chiave simmetrica da modificare è nota all'interno del database.

  • ADD ENCRYPTION BY
    Aggiunge la crittografia con il metodo specificato.

  • DROP ENCRYPTION BY
    Rimuove la crittografia con il metodo specificato. Non è possibile rimuovere tutte le forme di crittografia da una chiave simmetrica.

  • CERTIFICATE Certificate_name
    Specifica il certificato utilizzato per crittografare la chiave simmetrica. Il certificato deve esistere nel database corrente.

  • PASSWORD ='password'
    Specifica la password utilizzata per crittografare la chiave simmetrica. password deve soddisfare i criteri password Windows del computer che sta eseguendo l'istanza di SQL Server.

  • SYMMETRIC KEY Symmetric_Key_Name
    Specifica la chiave simmetrica utilizzata per crittografare la chiave simmetrica da modificare. La chiave simmetrica deve esistere nel database ed essere aperta.

  • ASYMMETRIC KEY Asym_Key_Name
    Specifica la chiave asimmetrica utilizzata per crittografare la chiave simmetrica da modificare. Tale chiave asimmetrica deve esistere nel database.

Osservazioni

Nota di attenzioneAttenzione

Se si crittografa una chiave simmetrica con una password anziché con la chiave pubblica della chiave master del database, viene utilizzato l'algoritmo di crittografia TRIPLE_DES. Per questo motivo, le chiavi create con un algoritmo di crittografia avanzato, come AES, vengono a loro volta protette con un algoritmo meno avanzato.

Per modificare la crittografia della chiave simmetrica, utilizzare le istruzioni ADD ENCRYPTION e DROP ENCRYPTION. Una chiave non può mai essere archiviata in forma non crittografata. Per questo motivo, è consigliabile aggiungere la nuova forma di crittografia prima di rimuovere la forma precedente.

Per modificare il proprietario di una chiave simmetrica, utilizzare ALTER AUTHORIZATION.

Autorizzazioni

È richiesta l'autorizzazione ALTER per la chiave simmetrica. Se la crittografia viene applicata con un certificato o una chiave asimmetrica, è richiesta l'autorizzazione VIEW DEFINITION per il certificato o la chiave asimmetrica. Se la crittografia viene rimossa con un certificato o una chiave asimmetrica, è richiesta l'autorizzazione CONTROL per il certificato o la chiave asimmetrica.

Esempi

Nell'esempio seguente viene modificato il metodo di crittografia utilizzato per proteggere una chiave simmetrica. La chiave simmetrica JanainaKey043 è stata crittografata con il certificato Shipping04 al momento della creazione. Poiché la chiave non può mai essere archiviata in forma non crittografata, in questo esempio la crittografia viene aggiunta con una password e poi rimossa con il certificato.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE Shipping04;
-- Open the key. 
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04
    WITH PASSWORD = '<enterStrongPasswordHere>'; 
-- First, encrypt the key with a password.
ALTER SYMMETRIC KEY JanainaKey043 
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
-- Now remove encryption by the certificate.
ALTER SYMMETRIC KEY JanainaKey043 
    DROP ENCRYPTION BY CERTIFICATE Shipping04;
CLOSE SYMMETRIC KEY JanainaKey043;