检查我的 SQL Server 数据库实例是否启用了 TDE 加密?

4
我有一个关于SQL Server透明加密(TDE)的问题。我需要转储一个数据库实例,由其他远程DBA通过转储的数据文件进行恢复。要求我确保转储的数据文件没有TDE,以便DBA可以将其恢复。我在网上查找了一些信息,并找到了以下查询来列出加密状态:
SELECT db_name(database_id), encryption_state 
FROM sys.dm_database_encryption_keys;

我的数据库实例完全没有出现在结果中。我运行了另一个查询,如下所示:

SELECT
    db.name,
    db.is_encrypted,
    dm.encryption_state,
    dm.percent_complete,
    dm.key_algorithm,
    dm.key_length
FROM
    sys.databases db
    LEFT OUTER JOIN sys.dm_database_encryption_keys dm
        ON db.database_id = dm.database_id;
GO

我的数据库实例的is_encrypted值为0,所有其他值都为null。

这是否意味着我的数据库实例根本没有加密?

1个回答

6
如果您的输出看起来像这样...
    name       | is_encrypted | encryption_state | percent_complete | key_algorithm | ley_length
    --------------------------------------------------------------------------------------------
    MyDatabase | 0            | NULL             | NULL             | NULL          | NULL

...你的数据库[MyDatabase]没有加密,也没有配置数据库加密密钥。

然而,如果任何数据库除了[is_encrypted]列(例如[encryption_state]=1)中包含非NULL值,则这些数据库可能已经被加密、部分加密/解密或准备进行加密。

详细了解加密状态请阅读此处: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-database-encryption-keys-transact-sql?view=sql-server-ver15


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接