ALTER ASYMMETRIC KEY (Transact-SQL)

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

Modifica le proprietà di una chiave asimmetrica.

Convenzioni di sintassi Transact-SQL

Nota

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

Sintassi

ALTER ASYMMETRIC KEY Asym_Key_Name <alter_option>  
  
<alter_option> ::=  
      <password_change_option>   
    | REMOVE PRIVATE KEY   

<password_change_option> ::=  
    WITH PRIVATE KEY ( <password_option> [ , <password_option> ] )  

<password_option> ::=  
      ENCRYPTION BY PASSWORD = 'strongPassword'  
    | DECRYPTION BY PASSWORD = 'oldPassword'  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

Asym_Key_Name
Nome con il quale è nota la chiave asimmetrica all'interno del database.

REMOVE PRIVATE KEY
Rimuove la chiave privata dalla chiave asimmetrica. La chiave pubblica non viene rimossa.

WITH PRIVATE KEY
Modifica la protezione della chiave privata.

ENCRYPTION BY PASSWORD ='strongPassword'
Specifica una nuova password per proteggere la chiave privata. password deve soddisfare i requisiti per i criteri password di Windows del computer che esegue l'istanza di SQL Server. Se questa opzione viene omessa, la chiave privata verrà crittografata con la chiave master del database.

DECRYPTION BY PASSWORD ='oldPassword'
Specifica la vecchia password, attualmente utilizzata per proteggere la chiave privata. Questo parametro non è richiesto se la chiave privata è crittografata con la chiave master del database.

Osservazioni:

Se non è presente una chiave master del database, l'opzione ENCRYPTION BY PASSWORD è obbligatoria e l'operazione avrà esito negativo se non si specifica una password. Per altre informazioni su come creare una chiave master del database, vedere CREATE MASTER KEY (Transact-SQL).

È possibile utilizzare ALTER ASYMMETRIC KEY per modificare la protezione della chiave privata specificando le opzioni PRIVATE KEY come illustrato nella tabella seguente.

Modifica della protezione ENCRYPTION BY PASSWORD DECRYPTION BY PASSWORD
Sostituzione della vecchia password con una nuova password Obbligatorio Obbligatorio
Sostituzione della password con la chiave master Omettere Richiesto
Sostituzione della chiave master con una password Richiesto Omettere

È necessario aprire la chiave master del database prima di poterla utilizzare per proteggere una chiave privata. Per altre informazioni, vedere OPEN MASTER KEY (Transact-SQL).

Per modificare il proprietario di una chiave asimmetrica, usare ALTER AUTHORIZATION.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per la chiave asimmetrica se si rimuove la chiave privata.

Esempi

R. Modifica della password della chiave privata

Nell'esempio seguente viene modificata la password utilizzata per proteggere la chiave privata della chiave asimmetrica PacificSales09. Verrà impostata la nuova password <enterStrongPasswordHere>.

ALTER ASYMMETRIC KEY PacificSales09   
    WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = '<oldPassword>',  
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>');  
GO  

B. Rimozione della chiave privata da una chiave asimmetrica

Nell'esempio seguente viene rimossa la chiave privata da PacificSales19, lasciando solo la chiave pubblica.

ALTER ASYMMETRIC KEY PacificSales19 REMOVE PRIVATE KEY;  
GO  

C. Rimozione della protezione con password da una chiave privata

Nell'esempio seguente viene rimossa la protezione con password da una chiave privata e la chiave viene protetta con la chiave master del database.

OPEN MASTER KEY DECRYPTION BY PASSWORD = '<database master key password>';  
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (  
    DECRYPTION BY PASSWORD = '<enterStrongPasswordHere>' );  
GO  

Vedi anche

CREATE ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Chiavi di crittografia del database e di SQL Server (Motore di database)
Gerarchia di crittografia
CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
Extensible Key Management (EKM)