【问题标题】:SQL Server TDE - use T-SQL to show if there is a database keySQL Server TDE - 使用 T-SQL 显示是否存在数据库键
【发布时间】:2021-01-30 09:21:57
【问题描述】:

我可以通过这个 T-SQL 查询判断是否存在 SQL Server TDE 主密钥:

if not exists (SELECT name FROM sys.symmetric_keys WHERE symmetric_key_id = 101) begin
    -- Master Key does not exist. Create one here.
end;

是否存在用于确定 [mydb] 的数据库键是否存在的查询?例如:

use [mydb];
if .... begin
    -- database encryption key does not exist. Create one here
end;

【问题讨论】:

    标签: sql-server encryption tde


    【解决方案1】:

    您正在寻找sys.dm_database_encryption_keys。来自the docs

    返回有关数据库加密状态及其关联数据库加密密钥的信息。

    此外,它是一个服务器级视图,因此无需在用户数据库的上下文中运行它(尽管这样做也可以;您可以在服务器上的任何位置运行它)。像这样的东西应该可以工作

    declare @db sysname = 'mydb';
    if exists (
        select *
        from sys.dm_database_encryption_keys
        where database_id = db_id(@db)
           and encryption_state = 3 /* encrypted */
    )
    begin
       print concat(quotename(@db), ' is encrypted.')
    end
    else
    begin
       print concat(quotename(@db), ' is not encrypted.')
    end
    

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 1970-01-01
      • 2020-08-14
      • 2020-08-16
      • 2019-07-30
      • 2014-04-02
      • 1970-01-01
      • 2023-03-28
      • 2021-09-22
      相关资源
      最近更新 更多