CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

在 Extensible Key Management (EKM) 提供者中,建立 SQL Server 的密碼編譯提供者。

Transact-SQL 語法慣例

Syntax

CREATE CRYPTOGRAPHIC PROVIDER provider_name   
    FROM FILE = path_of_DLL  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

provider_name
「可延伸金鑰管理」提供者的名稱。

path_of_DLL
是實作 SQL Server Extensible Key Management 介面之 .dll 檔案的路徑。 使用適用於 Microsoft Azure Key Vault 的 SQL Server 連接器時,預設位置是 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'

備註

提供者所建立的所有金鑰都會透過其 GUID 參考提供者。 GUID 會跨所有版本的 DLL 保留。

實作 SQLEKM 介面的 DLL 必須透過使用任何憑證的方式經過數位簽署。 SQL Server會驗證簽章。 這包括其憑證鏈結;該憑證鏈結的根目錄必須安裝在 Windows 系統的受信任的根憑證授權單位位置上。 如果簽章沒有經過正確驗證,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';  

另請參閱

可延伸金鑰管理 (EKM)
ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
使用 Azure Key Vault 的可延伸金鑰管理 (SQL Server)
使用 Azure Key Vault 設定 SQL Server TDE 可延伸金鑰管理
sys.cryptographic_providers
sys.dm_cryptographic_provider_properties