CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

通过可扩展密钥管理 (EKM) 提供程序在 SQL Server 内创建加密提供程序。

主题链接图标 Transact-SQL 语法约定

语法

CREATE CRYPTOGRAPHIC PROVIDER provider_name 
    FROM FILE = path_of_DLL

参数

  • provider_name
    是可扩展密钥管理提供程序的名称。

  • path_of_DLL
    实现 SQL Server 可扩展的密钥管理接口的 .dll 文件的路径。

注释

提供程序创建的所有密钥都将按照提供程序的 GUID 引用提供程序。 在 DLL 的所有版本中都将保留此 GUID。

必须使用任何证书对实现 SQLEKM 接口的 DLL 进行数字签名。 SQL Server 将验证此签名。 此签名包括其证书链,证书链的根目录必须安装在 Windows 系统的 Trusted Root Cert Authorities 位置。 如果该签名未经正确验证,则 CREATE CRYPTOGRAPHIC PROVIDER 语句将失败。 有关证书和证书链的详细信息,请参阅 SQL Server 证书和非对称密钥

当 EKM 提供程序 DLL 未实现所有必需的方法时,CREATE CRYPTOGRAPHIC PROVIDER 可能返回错误 33085:

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

当用于创建 EKM 提供程序 DLL 的标头文件过期时,CREATE CRYPTOGRAPHIC PROVIDER 可能返回错误 33032:

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

权限

要求具有 CONTROL SERVER 权限,或者具有 sysadmin 固定服务器角色的成员身份。

示例

下面的示例通过 .dll 文件在 SQL Server 中创建名为 SecurityProvider 的加密提供程序。 此 .dll 文件命名为 c:\SecurityProvider\SecurityProvider_v1.dll 并安装在服务器上。 必须首先在服务器上安装此提供程序的证书。

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

请参阅

参考

ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)

CREATE SYMMETRIC KEY (Transact-SQL)

概念

可扩展的密钥管理 (EKM)