检查SQL server上的数据库实例是否由TDE加密



我有一个关于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。

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

如果您的输出看起来像这样。。。

name       | is_encrypted | encryption_state | percent_complete | key_algorithm | ley_length
--------------------------------------------------------------------------------------------
MyDatabase | 0            | NULL             | NULL             | NULL          | NULL

您的数据库[MyDatabase]未加密。它也没有配置数据库加密密钥。

然而,如果任何数据库在[is_encrypted]以外的列中都有非NULL(例如[iencryption_state]=1(,则这些数据库要么被加密,要么被部分加密/解密,要么准备加密。

请在此处阅读有关加密状态的详细信息:https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-database-encryption-keys-transact-sql?view=sql-服务器-ver15

最新更新