ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
Modifica un provider di crittografia di SQL Server da un provider EKM (Extensible Key Management).
Sintassi
ALTER CRYPTOGRAPHIC PROVIDER provider_name
[ FROM FILE = path_of_DLL ]
ENABLE | DISABLE
Argomenti
provider_name
Nome del provider EKM.Path_of_DLL
Percorso del file DLL che implementa l'interfaccia EKM di SQL Server.ENABLE | DISABLE
Abilita o disabilita un provider.
Osservazioni
Se il provider modifica il file DLL utilizzato per l'implementazione di EKM (Extensible Key Management) in SQL Server, è necessario utilizzare l'istruzione ALTER CRYPTOGRAPHIC PROVIDER.
Quando il percorso del file DLL viene aggiornato utilizzando l'istruzione ALTER CRYPTOGRAPHIC PROVIDER, tramite SQL Server vengono effettuate le azioni seguenti:
Disabilitazione del provider.
Verifica della firma DLL e del fatto che il GUID del file DLL sia uguale a quello registrato nel catalogo.
Aggiornamento della versione DLL nel catalogo.
Quando un provider EKM viene impostato su DISABLE, qualsiasi tentativo effettuato su nuove connessioni di utilizzare il provider con istruzioni di crittografia avrà esito negativo.
Per disabilitare un provider, è necessario terminare tutte le sessioni che lo utilizzano.
Quando la dll di un provider EKM non implementa tutti i metodi necessari, ALTER CRYPTOGRAPHIC PROVIDER può restituire l'errore 33085:
Impossibile trovare uno o più metodi nella libreria '%.* ls' del provider del servizio di crittografia.
Quando il file di intestazione utilizzato per creare la dll del provider EKM non è aggiornato, ALTER CRYPTOGRAPHIC PROVIDER può restituire l'errore 33032:
Versione Crypto API SQL '%02d.%02d' implementata dal provider non supportata. Versione supportata: '%02d.%02d'.
Autorizzazioni
È richiesta l'autorizzazione CONTROL per il provider di crittografia.
Esempi
Nell'esempio seguente viene modificato un provider di crittografia denominato SecurityProvider in SQL Server con una versione più recente di un file DLL. La nuova versione è denominata c:\SecurityProvider\SecurityProvider_v2.dll e viene installata nel server. Il certificato del provider deve essere installato nel server.
/* First, disable the provider to perform the upgrade.
This will terminate all open cryptographic sessions */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
DISABLE;
GO
/* Upgrade the provider .dll file. The GUID must the same
as the previous version, but the version can be different. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';
GO
/* Enable the upgraded provider. */
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider
ENABLE;
GO