【问题标题】:Check if my database instance on SQL server is encrypted by TDE?检查我在 SQL Server 上的数据库实例是否被 TDE 加密?
【发布时间】:2020-08-14 05:17:43
【问题描述】:

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

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

【问题讨论】:

    标签: sql-server encryption tde


    【解决方案1】:

    如果你的输出看起来像这样......

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

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

    但是,如果任何数据库在 [is_encrypted] 以外的列中包含非 NULL(例如 [encryption_state] = 1),则这些数据库要么已加密,要么已部分加密/解密,要么已准备好进行加密。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 2020-08-21
      • 2020-08-16
      • 1970-01-01
      • 2018-12-11
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多