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:

无法在加密提供程序库“%.*ls”中找到一个或多个方法。

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

不支持提供程序实现的 SQL Crypto API 版本 '%02d.%02d'。支持的版本为 '%02d.%02d'。

权限

要求对对称密钥具有 CONTROL 权限。

示例

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

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