CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
通过可扩展密钥管理 (EKM) 提供程序在 SQL Server 内创建加密提供程序。
语法
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)