Consulta para listar certificado de criptografia para bancos de dados

15

Qual certificado está sendo usado para criptografar cada um dos bancos de dados nas instâncias.

Posso obter os dados usando o seguinte, mas como escrevo as consultas

USE master
GO

-- this provides the list of certificates
SELECT * FROM sys.certificates


-- this provides the list of databases (encryption_state = 3) is encrypted
SELECT * FROM sys.dm_database_encryption_keys
 WHERE encryption_state = 3;

Notei que as colunas sys.certifcates.thumbprint e sys.dm_database_encryption_keys.encryptor_thumbprint contêm os mesmos dados.

Barry MSIH
fonte

Respostas:

19

Você pode participar da impressão digital do certificado:

use master;
go

select
    database_name = d.name,
    dek.encryptor_type,
    cert_name = c.name
from sys.dm_database_encryption_keys dek
left join sys.certificates c
on dek.encryptor_thumbprint = c.thumbprint
inner join sys.databases d
on dek.database_id = d.database_id;

Minha saída de amostra:

database_name           encryptor_type    cert_name
=============           ==============    =========
tempdb                  ASYMMETRIC KEY    NULL
AdventureWorks2012TDE   CERTIFICATE       TdeCert
Thomas Stringer
fonte
Observe que o encryptor_typecampo está disponível apenas no SQL 2012+.
LowlyDBA
1

Para uma consulta mais aprofundada que mostre quais bancos de dados estão criptografados ou não, seu certificado e IMPORTANTE se a configuração de criptografia foi realmente concluída ou não. Às vezes, a criptografia pode demorar para ser concluída ou ficar travada.

SELECT D.name AS 'Database Name'
,c.name AS 'Cert Name'
,E.encryptor_type AS 'Type'
,case
    when E.encryption_state = 3 then 'Encrypted'
    when E.encryption_state = 2 then 'In Progress'
    else 'Not Encrypted'
end as state,
E.encryption_state, E.percent_complete, E.key_algorithm, E.key_length, E.* FROM sys.dm_database_encryption_keys E
right join sys.databases D on D.database_id = E.database_id
left join sys.certificates c ON E.encryptor_thumbprint=c.thumbprint
Jhunter1
fonte