CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

Se aplica a:SQL ServerAzure SQL Managed Instance

Crea 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

CREATE CRYPTOGRAPHIC PROVIDER provider_name   
    FROM FILE = path_of_DLL  

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
Es el nombre del proveedor de Administración extensible de claves.

path_of_DLL
Es la ruta de acceso del archivo .dll que implementa la interfaz de Administración extensible de claves de SQL Server. Cuando se usa el Conector de SQL Server para Microsoft Azure Key Vault, la ubicación predeterminada es "C:\Archivos de programa\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll" .

Observaciones

Todas las claves creadas por un proveedor harán referencia al proveedor por su GUID. El GUID se retiene para todas las versiones de la DLL.

La DLL que implementa la interfaz SQLEKM debe estar firmada digitalmente con cualquier certificado. SQL Server comprobará la firma. Esto incluye su cadena de certificados, que debe tener su raíz instalada en la ubicación Entidades de certificación raíz de confianza en un sistema Windows. Si se verifica que la firma no es correcta, se producirá un error en la instrucción CREATE CRYPTOGRAPHIC PROVIDER. Para más información sobre certificados y cadenas de certificados, vea Certificados y claves asimétricas de SQL Server.

Cuando una DLL del proveedor de EKM no implementa todos los métodos necesarios, CREATE 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 está anticuado, CREATE 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

Debe disponer del permiso CONTROL SERVER o pertenecer al rol fijo de servidor sysadmin.

Ejemplos

En este ejemplo se crea un proveedor criptográfico llamado SecurityProvider en SQL Server a partir de un archivo .dll. El archivo .dll se denomina c:\SecurityProvider\SecurityProvider_v1.dll y se instala en el servidor. El certificado del proveedor se debe instalar primero en el servidor.

-- Install the provider  
CREATE CRYPTOGRAPHIC PROVIDER SecurityProvider  
    FROM FILE = 'C:\SecurityProvider\SecurityProvider_v1.dll';  

Consulte también

Administración extensible de claves (EKM)
ALTER 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)
Configuración de Administración extensible de claves de TDE de SQL Server mediante Azure Key Vault
sys.cryptographic_providers
sys.dm_cryptographic_provider_properties