Respostas:
Imagine por um segundo que você tem um banco de dados de 1 terabyte. O backup demora um pouco e a criptografia demora um pouco. Então imagine que:
O que você esperaria que sua consulta retornasse, já que assim que você terminar de restaurar o backup completo, ele continuará aplicando o TDE, criptografando o restante do seu banco de dados?
Por outro lado, imagine que você comece com um banco de dados já criptografado e:
O que você esperaria que a consulta retornasse? Estes são exemplos de cenários dos motivos pelos quais a criptografia TDE não é um dos campos incluídos no msdb.dbo.backupset .
Votei positivamente na resposta de Brent , já que o cenário dele definitivamente poderia turvar a água sobre se o backup continha dados da TDE.
No entanto, se você tiver ativado o TDE por um tempo, parece que RESTORE FILELISTONLY (Transact-SQL) pode fornecer as informações que você procura . Há uma coluna no conjunto de resultados chamada TDEThumbprint
"Mostra a impressão digital da Chave de Criptografia do Banco de Dados. A impressão digital do criptografador é um hash SHA-1 do certificado com o qual a chave está criptografada".
Eu olhei para alguns dos meus backups que estavam criptografados com TDE e não com TDE.
Os backups dos meus bancos de dados TDE tinham a impressão digital do certificado nessa coluna e os backups que não tinham bancos de dados TDE tinham nulo.
Estendendo a resposta de Scott, aqui está a consulta SQL que informará se um backup está criptografado ou não.
Declare @backupFile varchar(max) = 'J:\backups\psa20191029.bak'
DECLARE @fileListTable TABLE (
[LogicalName] NVARCHAR(128),
[PhysicalName] NVARCHAR(260),
[Type] CHAR(1),
[FileGroupName] NVARCHAR(128),
[Size] NUMERIC(20,0),
[MaxSize] NUMERIC(20,0),
[FileID] BIGINT,
[CreateLSN] NUMERIC(25,0),
[DropLSN] NUMERIC(25,0),
[UniqueID] UNIQUEIDENTIFIER,
[ReadOnlyLSN] NUMERIC(25,0),
[ReadWriteLSN] NUMERIC(25,0),
[BackupSizeInBytes] BIGINT,
[SourceBlockSize] INT,
[FileGroupID] INT,
[LogGroupGUID] UNIQUEIDENTIFIER,
[DifferentialBaseLSN] NUMERIC(25,0),
[DifferentialBaseGUID] UNIQUEIDENTIFIER,
[IsReadOnly] BIT,
[IsPresent] BIT,
[TDEThumbprint] VARBINARY(32) -- remove this column if using SQL 2005
)
INSERT INTO @fileListTable EXEC('RESTORE FILELISTONLY FROM DISK = '''+@backupFile+'''')
select distinct LogicalName + case when TDEThumbprint is null then ' is not encrypted'
else ' is encrypted'
end as AmIEncrypted
from @fileListTable
where type='D'