Yanıtlar:
Bir saniyeliğine 1 terabaytlık bir veritabanınız olduğunu hayal edin. Yedeklemek biraz zaman alır ve şifrelemek biraz zaman alır. Öyleyse şunu hayal edin:
Tam yedeklemeyi geri yüklemeyi tamamladığınızda, veritabanınızın geri kalanını şifreleyerek TDE'yi uygulamaya devam edeceği göz önüne alındığında, sorgunuzun geri dönmesini beklersiniz?
Tersine, zaten şifrelenmiş bir veritabanıyla başladığınızı ve:
Sorgunun geri dönmesini beklersiniz? Bunlar, TDE şifrelemesinin msdb.dbo.backupset içinde bulunan alanlardan biri olmadığına dair örnek senaryolardır .
Ben senaryoyu yedeklemenin TDE verisi içerip içermediğine dair suyu kesinlikle çamurlayabileceği için Brent'in cevabını oyladım.
Eğer TDE bir süre etkin yaşadım Ancak, görülüyor ki FILELISTONLY (Transact-SQL) RESTORE olabilir peşinde olduğunuz bilgi sağlar. Sonuç kümesinde TDEThumbprint"Veritabanı Şifreleme Anahtarının parmak izini gösterir. Şifreleyici parmak izi, anahtarın şifrelendiği sertifikanın bir SHA-1 karmasıdır" adı verilen bir sütun vardır .
Hem TDE şifreli hem de TDE şifreli olmayan yedeklerimin bazılarına baktım.
TDE veritabanlarımın yedeklerinde bu sütunda sertifika parmak izi ve TDE veritabanlarında olmayan yedekler boştu.
Scott'un Cevabı genişletildiğinde, bir yedeklemenin şifrelenip şifrelenmediğini size söyleyecek SQL Sorgusu.
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'