Jawaban:
Bayangkan sejenak bahwa Anda memiliki basis data 1 terabyte. Mencadangkannya membutuhkan waktu, dan mengenkripsinya membutuhkan waktu. Jadi bayangkan itu:
Apa yang Anda harapkan akan dikembalikan oleh kueri, mengingat begitu Anda selesai memulihkan cadangan penuh, ia akan terus menerapkan TDE, mengenkripsi seluruh basis data Anda?
Sebaliknya, bayangkan Anda mulai dengan database yang sudah dienkripsi, dan:
Apa yang Anda harapkan akan dikembalikan oleh query? Ini adalah contoh skenario mengapa enkripsi TDE bukan merupakan salah satu bidang yang termasuk dalam msdb.dbo.backupset .
Saya memilih jawaban Brent , karena skenarionya pasti dapat mengeruhkan air apakah cadangan berisi data TDE.
Namun, jika Anda telah mengaktifkan TDE untuk sementara waktu, tampaknya RESTORE FILELISTONLY (Transact-SQL) mungkin memberikan informasi yang Anda cari. Ada kolom pada set hasil yang disebut TDEThumbprint"Menunjukkan cap jempol dari Kunci Enkripsi Database. Cap jempol enkripsi adalah hash SHA-1 dari sertifikat yang dengannya kunci dienkripsi."
Saya melihat beberapa backup saya yang dienkripsi TDE dan bukan TDE terenkripsi.
Cadangan basis data TDE saya memiliki cap jempol sertifikat di kolom itu dan cadangan yang tidak memiliki basis data TDE nol.
Extending Scott's Answer, di sini adalah SQL Query yang akan memberi tahu Anda jika cadangan dienkripsi atau tidak.
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'