ALTER ASYMMETRIC KEY (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics

Modifica le proprietà di una chiave asimmetrica.

Icona di collegamento a un argomento Convenzioni della 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 e versioni precedenti, vedere 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 sta eseguendo 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 Obbligatoria Obbligatoria
Sostituzione della password con la chiave master Omettere Obbligatorio
Sostituzione della chiave master con una password Obbligatorio 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  

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