ALTER CERTIFICATE (Transact-SQL)
Modifica la chiave privata utilizzata per crittografare un certificato, oppure ne aggiunge una nel caso in cui non sia presente alcuna chiave. Modifica la disponibilità di un certificato per Service Broker.
Convenzioni della sintassi Transact-SQL
Sintassi
ALTER CERTIFICATE certificate_name
REMOVE PRIVATE KEY
|
WITH PRIVATE KEY ( <private_key_spec> [ ,... ] )
|
WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ]
<private_key_spec> ::=
FILE = 'path_to_private_key'
|
DECRYPTION BY PASSWORD = 'key_password'
|
ENCRYPTION BY PASSWORD = 'password'
Argomenti
certificate_name
Nome univoco con il quale il certificato è noto nel database.FILE ='path_to_private_key'
Specifica il percorso completo, compreso il nome del file, per la chiave privata. Questo parametro può essere un percorso locale o un percorso UNC di rete. L'accesso al file verrà effettuato nel contesto di sicurezza dell'account del servizio SQL Server. Quando si utilizza questa opzione, occorre verificare che l'account del servizio abbia accesso al file specificato.DECRYPTION BY PASSWORD ='key_password'
Specifica la password necessaria per decrittografare la chiave privata.ENCRYPTION BY PASSWORD ='password'
Viene specificata la password utilizzata per crittografare la chiave privata del certificato nel database. password deve soddisfare i criteri password Windows del computer che sta eseguendo l'istanza di SQL Server. Per ulteriori informazioni, vedere Criteri password.REMOVE PRIVATE KEY
Specifica che la chiave privata non deve più essere mantenuta all'interno del database.ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
Rende il certificato disponibile per un initiator di una conversazione di dialogo di Service Broker.
Osservazioni
La chiave privata deve corrispondere alla chiave pubblica specificata da certificate_name.
La clausola DECRYPTION BY PASSWORD può essere omessa se la password nel file è protetta con un valore di password Null.
Quando la chiave privata di un certificato già esistente nel database viene importata da un file, la chiave privata sarà protetta automaticamente dalla chiave master del database. Per proteggere la chiave privata con una password, utilizzare la frase ENCRYPTION BY PASSWORD.
L'opzione REMOVE PRIVATE KEY eliminerà la chiave privata del certificato dal database. Impostare tale opzione nei casi in cui la verifica delle firme verrà eseguita tramite certificato, o negli scenari di Service Broker in cui non è richiesta una chiave privata. Non rimuovere la chiave privata di un certificato che protegge una chiave simmetrica.
Non è necessario specificare una password di decrittografia quando la chiave privata è crittografata tramite la chiave master del database.
Importante |
---|
Eseguire sempre una copia di archivio della chiave privata prima di rimuoverla dal database. Per ulteriori informazioni, vedere BACKUP CERTIFICATE (Transact-SQL). |
L'opzione WITH PRIVATE KEY non è disponibile in un database indipendente.
Autorizzazioni
È richiesta l'autorizzazione ALTER per il certificato.
Esempi
A.Modifica della password di un certificato
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
B.Modifica della password utilizzata per crittografare la chiave privata
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
C.Importazione di una chiave privata per un certificato che è già presente nel database
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D.Modifica del tipo di protezione della chiave privata, da password a chiave master di database
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO
Vedere anche
Riferimento
CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)