Respuestas:
Imagine por un segundo que tiene una base de datos de 1 terabyte. Hacer una copia de seguridad lleva un tiempo y cifrarlo lleva un tiempo. Entonces imagina que:
¿Qué esperaría que devolviera su consulta, dado que tan pronto como termine de restaurar la copia de seguridad completa, continuará aplicando TDE, encriptando el resto de su base de datos?
Por el contrario, imagine que comienza con una base de datos ya encriptada y:
¿Qué esperaría que devuelva la consulta? Estos son escenarios de ejemplo de por qué el cifrado TDE no es uno de los campos incluidos en msdb.dbo.backupset .
Yo voté arriba- respuesta de Brent , como su escenario definitivamente podría enturbiar el agua de si la copia de seguridad contiene datos TDE.
Sin embargo, si ha habilitado TDE durante un tiempo, parece que RESTORE FILELISTONLY (Transact-SQL) podría proporcionar la información que busca . Hay una columna en el conjunto de resultados llamada TDEThumbprint
"Muestra la huella digital de la clave de cifrado de la base de datos. La huella digital del cifrado es un hash SHA-1 del certificado con el que se cifra la clave".
Miré algunas de mis copias de seguridad que estaban cifradas con TDE y no con TDE.
Las copias de seguridad de mis bases de datos TDE tenían la huella digital del certificado en esa columna y las copias de seguridad que no tenían bases de datos TDE tenían nulo.
Ampliando la respuesta de Scott, aquí está la consulta SQL que le dirá si una copia de seguridad está encriptada o no.
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'