Cómo encontrar si la copia de seguridad del servidor SQL está cifrada con TDE sin restaurar la copia de seguridad


13

¿Hay alguna manera de encontrar desde el archivo de copia de seguridad de SQL Server o las tablas de MSDB si la copia de seguridad está cifrada con TDE sin intentar restaurar el archivo de copia de seguridad?

Gracias

Respuestas:


10

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:

  • 9:00 AM - comienzas a hacer una copia de seguridad completa
  • 9:01 AM: en otra ventana, comienza a habilitar TDE en la base de datos
  • 9:05 AM - la copia de seguridad completa
  • 9:10 AM - TDE completa

¿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:

  • 9:00 a.m. - eliminas TDE (que lleva un tiempo
  • 9:01 AM - comienzas una copia de seguridad completa
  • 9:05 AM - las páginas de datos ya no están encriptadas
  • 9:06 AM - su copia de seguridad completa se completa

¿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 .


Gracias a todos por una respuesta rápida y @ScottHodgin sí, quería saber si la copia de seguridad es de una base de datos TDE y la respuesta de Brent lo dejó claro.
yegnasew 01 de

@Brent Ozar: En ambos casos, me gustaría que la consulta regrese, "Parcialmente encriptada". Sí, esto significa tener una propiedad de 3 estados en lugar de un valor booleano. Obviamente, tal propiedad no es realmente factible a menos que Microsoft la implemente.
Brian

@Brian bingo. No es factible dado el estado actual.
Brent Ozar

30

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.


2

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'
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.