ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Se aplica a:SQL Server

Modifica un proveedor criptográfico dentro de SQL Server a partir de un proveedor de Administración extensible de claves (EKM).

Convenciones de sintaxis de Transact-SQL

Sintaxis

ALTER CRYPTOGRAPHIC PROVIDER provider_name   
    [ FROM FILE = path_of_DLL ]  
    ENABLE | DISABLE  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

provider_name
Nombre del proveedor de Administración extensible de claves.

Path_of_DLL
Ruta de acceso del archivo .dll que implementa la interfaz de Administración extensible de claves de SQL Server.

ENABLE | DISABLE
Habilita o deshabilita un proveedor.

Comentarios

Si el proveedor cambia el archivo .dll que se utiliza para implementar la Administración extensible de claves en SQL Server, es preciso utilizar la instrucción ALTER CRYPTOGRAPHIC PROVIDER.

Cuando la ruta de acceso del archivo .dll se actualiza mediante la instrucción ALTER CRYPTOGRAPHIC PROVIDER, SQL Server realiza las acciones siguientes:

  • Deshabilita el proveedor.
  • Comprueba la firma de la DLL y se asegura de que el archivo .dll tiene el mismo GUID que el grabado en el catálogo.
  • Actualiza la versión de DLL en el catálogo.

Cuando un proveedor de EKM se establece en DISABLE, se producirá un error si en las nuevas conexiones se intenta usar el proveedor con instrucciones de cifrado.

Para deshabilitar un proveedor, todas las sesiones que lo utilizan deben terminarse.

Cuando una DLL del proveedor de EKM no implementa todos los métodos necesarios, ALTER CRYPTOGRAPHIC PROVIDER puede devolver el error 33085:

One or more methods cannot be found in cryptographic provider library '%.*ls'.

Cuando el archivo de encabezado utilizado para crear la DLL del proveedor de EKM no está actualizado, ALTER CRYPTOGRAPHIC PROVIDER puede devolver el error 33032:

SQL Crypto API version '%02d.%02d' implemented by provider is not supported. Supported version is '%02d.%02d'.

Permisos

Necesita el permiso CONTROL en el proveedor criptográfico.

Ejemplos

En el ejemplo siguiente se modifica un proveedor criptográfico, denominado SecurityProvider en SQL Server, a una versión más reciente de un archivo .dll. Esta nueva versión se denomina c:\SecurityProvider\SecurityProvider_v2.dll y se instala en el servidor. El certificado del proveedor debe estar instalado en el servidor.

  1. Deshabilite el proveedor para llevar a cabo la actualización. Con esto se finalizarán todas las sesiones criptográficas abiertas.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. Actualice el archivo .dll del proveedor. El GUID debe ser el mismo que el de la versión anterior, pero la versión puede ser diferente.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. Habilite el proveedor actualizado.
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
ENABLE;  
GO  

Consulte también

Administración extensible de claves (EKM)
CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
Administración extensible de claves con Azure Key Vault (SQL Server)