Condividi tramite


ALTER SYMMETRIC KEY (Transact-SQL)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL di Azure Synapse Analytics in Microsoft Fabric

Modifica le proprietà di una chiave simmetrica.

Convenzioni relative alla sintassi Transact-SQL

Nota

Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.

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 requisiti per i criteri password di Windows del computer che esegue 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:

Attenzione

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, usare ALTER AUTHORIZATION.

Nota

L'algoritmo RC4 è supportato solo per motivi di compatibilità con le versioni precedenti. È possibile crittografare il nuovo materiale usando RC4 o RC4_128 solo quando il livello di compatibilità del database è 90 o 100. (Non consigliato.) Usare un algoritmo più recente, ad esempio uno degli algoritmi AES. In SQL Server 2012 (11.x) il materiale crittografato tramite RC4 o RC4_128 può essere decrittografato in qualsiasi livello di compatibilità.

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;  

Vedi anche

CREATE SYMMETRIC KEY (Transact-SQL)
OPEN SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
Gerarchia di crittografia