sys.dm_database_encryption_keys (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例

返回与数据库加密状态以及相关联数据库加密密钥有关的信息。 有关数据库加密的详细信息,请参阅透明数据加密 (TDE)

列名称 数据类型 描述
database_id int 数据库 ID。
encryption_state int 指示数据库是加密的还是未加密的。

0 = 不存在数据库加密密钥,未加密

1 = 未加密

2 = 正在进行加密

3 = 已加密

4 = 正在更改密钥

5 = 正在进行解密

6 = 正在进行保护更改(正在更改对数据库加密密钥进行加密的证书或非对称密钥)。
create_date datetime 显示创建加密密钥的日期(UTC)。
regenerate_date datetime 显示重新生成加密密钥的日期(UTC)。
modify_date datetime 显示已修改加密密钥的日期(以 UTC 为单位)。
set_date datetime 显示加密密钥应用于数据库的日期(以 UTC 为单位)。
opened_date datetime 显示数据库密钥上次打开时间(UTC)。
key_algorithm nvarchar(32) 显示用于密钥的算法。
key_length int 显示密钥的长度。
encryptor_thumbprint varbinary(20) 显示加密程序的指纹。
encryptor_type nvarchar(32) 适用范围: SQL Server (SQL Server 2012 (11.x) 到 当前版本)。

描述加密程序。
percent_complete real 数据库加密状态更改的完成百分比。 如果未发生状态更改,则为 0。
encryption_state_desc nvarchar(32) 适用于:SQL Server 2019 (15.x) 及更高版本。

指示数据库是否已加密的字符串。

NONE

加密

加密

DECRYPTION_IN_PROGRESS

ENCRYPTION_IN_PROGRESS

KEY_CHANGE_IN_PROGRESS

PROTECTION_CHANGE_IN_PROGRESS
encryption_scan_state int 适用于:SQL Server 2019 (15.x) 及更高版本。

指示加密扫描的当前状态。

0 = 未启动扫描,未启用 TDE

1 = 正在扫描。

2 = 扫描正在进行,但已暂停,用户可以恢复。

3 = 由于某种原因中止了扫描,需要手动干预。 请联系Microsoft 支持部门获取更多帮助。

4 = 扫描已成功完成,已启用 TDE,加密已完成。
encryption_scan_state_desc nvarchar(32) 适用于:SQL Server 2019 (15.x) 及更高版本。

指示加密扫描的当前状态的字符串。

NONE

RUNNING

SUSPENDED

ABORTED

完成
encryption_scan_modify_date datetime 适用于:SQL Server 2019 (15.x) 及更高版本。

显示上次修改加密扫描状态的日期(UTC)。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在SQL 数据库基本、S0S1 服务目标以及弹性池中的数据库、服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

要求对服务器具有 VIEW SERVER SECURITY STATE 权限。

另请参阅

与安全性相关的动态管理视图和函数 (Transact-SQL)
透明数据加密 (TDE)
SQL Server 加密
SQL Server 和数据库加密密钥(数据库引擎)
加密层次结构
ALTER DATABASE SET 选项 (Transact-SQL)
CREATE DATABASE ENCRYPTION KEY (Transact-SQL)
ALTER DATABASE ENCRYPTION KEY (Transact-SQL)
DROP DATABASE ENCRYPTION KEY (Transact-SQL)