配置 Always Encrypted 的 enclave 类型(服务器配置选项)

适用于: SQL Server 2019 (15.x) 及更高版本 - 仅限 Windows

本文介绍如何为具有安全 enclave 的 Always Encrypted 启用或禁用安全 enclave。 有关详细信息,请参阅具有安全 enclave 的 Always Encrypted在 SQL Server 中配置安全 enclave

列加密 enclave 类型服务器配置选项控制用于 Always Encrypted 的安全 enclave 类型。 该选项可以设置为以下值之一:

说明
0 没有安全 enclave。 数据库引擎 不会为 Always Encrypted 初始化安全 enclave。 因此,具有安全 enclave 的 Always Encrypted 功能将不可用。
1 基于虚拟化的安全性 (VBS)。 数据库引擎 会尝试初始化基于虚拟化的安全性 (VBS) enclave。

重要

对列加密 enclave 类型的更改直到重新启动 SQL Server 实例才会生效。

可以使用 sys.configurations (Transact-SQL) 视图检查配置的 enclave 类型值和当前生效的 enclave 类型值。

若要确认是否在上次重新启动 SQL Server 之后已正确初始化了具有当前生效类型(大于 0)的 enclave,请检查 sys.dm_column_encryption_enclave (Transact-SQL) 视图:

有关如何配置 VBS enclave 的分步说明,请参阅步骤 2:在 SQL Server 中启用具有安全 enclave 的 Always Encrypted

示例

以下示例启用安全 enclave 并将 enclave 类型设置为 VBS:

sp_configure 'column encryption enclave type', 1;  
GO  
RECONFIGURE;  
GO  

以下示例禁用安全 enclave:

sp_configure 'column encryption enclave type', 0;  
GO  
RECONFIGURE;  
GO  

以下查询检索配置的 enclave 类型和当前生效的 enclave 类型:

USE [master];
GO
SELECT
[value]
, CASE [value] WHEN 0 THEN 'No enclave' WHEN 1 THEN 'VBS' ELSE 'Other' END AS [value_description]
, [value_in_use]
, CASE [value_in_use] WHEN 0 THEN 'No enclave' WHEN 1 THEN 'VBS' ELSE 'Other' END AS [value_in_use_description]
FROM sys.configurations
WHERE [name] = 'column encryption enclave type'; 

后续步骤

管理具有安全 enclave 的 Always Encrypted 的密钥

另请参阅

服务器配置选项 (SQL Server)
sp_configure (Transact-SQL)
RECONFIGURE (Transact-SQL)
sys.configurations (Transact-SQL)
sys.dm_column_encryption_enclave (Transact-SQL)