sp_enclave_send_keys (Transact-SQL)

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

将数据库中定义的列加密密钥发送到与具有安全 enclave 的 Always Encrypted 一起使用的服务器端安全 enclave。

sp_enclave_send_keys 仅发送已启用 enclave 的密钥,并加密使用随机加密且具有索引的列。 对于常规用户查询,客户端驱动程序为 enclave 提供查询中计算所需的密钥。 sp_enclave_send_keys 发送数据库中定义并用于索引加密列的所有列加密密钥。

sp_enclave_send_keys 提供了一种将密钥发送到 enclave 并填充列加密密钥缓存以执行后续索引操作的简单方法。 使用 sp_enclave_send_keys 启用:

  • 用于重新生成或更改加密数据库列上的索引或统计信息的 DBA(如果 DBA 无权访问列主密钥)。 请参阅使用缓存列加密密钥调用索引操作

  • SQL Server 完成对加密列的索引的恢复。 请参阅数据库恢复

  • 使用用于 SQL Server 的 .NET Framework 数据提供程序将数据大容量加载到加密列的应用程序。

若要成功调用 sp_enclave_send_keys,需要连接到数据库,为数据库连接启用 Always Encrypted 和 enclave 计算。 还需要有权访问列主密钥、保护列加密密钥、要发送的列加密密钥,并且需要有权访问数据库中的 Always Encrypted 密钥元数据。

语法

sp_enclave_send_keys
[ ; ]

参数

该存储过程没有参数。

返回值

该存储过程没有返回值。

结果集

该存储过程没有结果集。

权限

需要数据库中的 VIEW ANY COLUMN ENCRYPTION KEY DEFINITIONVIEW ANY COLUMN MASTER KEY DEFINITION 权限。

示例

EXEC sp_enclave_send_keys;