ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)

適用於:SQL Server

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

Transact-SQL 語法慣例

Syntax

ALTER CRYPTOGRAPHIC PROVIDER provider_name   
    [ FROM FILE = path_of_DLL ]  
    ENABLE | DISABLE  

注意

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

引數

provider_name
Extensible Key Management 提供者的名稱。

Path_of_DLL
實作「SQL Server 可延伸金鑰管理」介面之 .dll 檔案的路徑。

ENABLE | DISABLE
啟用或停用提供者。

備註

如果提供者變更 SQL Server 中用來實作 Extensible Key Management 的 .dll 檔案,您必須使用 ALTER CRYPTOGRAPHIC PROVIDER 陳述式。

當使用 ALTER CRYPTOGRAPHIC PROVIDER 陳述式來更新 .dll 檔案路徑時,SQL Server 會執行以下動作:

  • 停用此提供者。
  • 驗證 DLL 簽章,並確認此 .dll 檔案的 GUID 與目錄中記錄的 GUID 相同。
  • 更新此目錄中的 DLL 版本。

當 EKM 提供者設定為 DISABLE 時,任何嘗試透過新連接搭配加密陳述式來使用此提供者的動作都將會失敗。

若要停用提供者,使用此提供者的所有工作階段都必須結束。

當 EKM 提供者 dll 未實作所有必要的方法時,ALTER CRYPTOGRAPHIC PROVIDER 可以傳回錯誤 33085:

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

當用來建立 EKM 提供者 dll 的標頭檔過期時,ALTER CRYPTOGRAPHIC PROVIDER 可傳回錯誤 33032:

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

權限

需要密碼編譯提供者的 CONTROL 權限。

範例

下列範例會在 SQL Server 中,將稱為 SecurityProvider 的密碼編譯提供者更改為更新版的 .dll 檔案。 這個新的版本命名為 c:\SecurityProvider\SecurityProvider_v2.dll,而且會安裝在伺服器上。 您必須將提供者的憑證安裝在伺服器上。

  1. 停用提供者以執行升級。 這將會終止所有開啟的密碼編譯工作階段。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
DISABLE;  
GO  
  1. 升級提供者 .dll 檔案。 GUID 必須與先前版本相同,但版本可以不同。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider  
FROM FILE = 'c:\SecurityProvider\SecurityProvider_v2.dll';  
GO  
  1. 啟用升級後的提供者。
ALTER CRYPTOGRAPHIC PROVIDER SecurityProvider   
ENABLE;  
GO  

另請參閱

可延伸金鑰管理 (EKM)
CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
CREATE SYMMETRIC KEY (Transact-SQL)
使用 Azure Key Vault 的可延伸金鑰管理 (SQL Server)