जवाबों:
एक दूसरे के लिए कल्पना करें कि आपको 1 टेराबाइट डेटाबेस मिला है। इसे बैकअप करने में कुछ समय लगता है, और एन्क्रिप्ट करने में कुछ समय लगता है। तो कल्पना कीजिए कि:
आप अपनी क्वेरी की वापसी की उम्मीद करेंगे, यह देखते हुए कि जैसे ही आप पूर्ण बैकअप को बहाल करते हैं, यह TDE को लागू करना जारी रखता है, आपके बाकी डेटाबेस को एन्क्रिप्ट करता है?
इसके विपरीत, कल्पना करें कि आप पहले से ही एन्क्रिप्टेड डेटाबेस से शुरू करते हैं और:
आप क्वेरी के वापस लौटने की क्या उम्मीद करेंगे? ये उदाहरण हैं कि क्यों TDE एन्क्रिप्शन msdb.dbo.backupset में शामिल फ़ील्ड में से एक नहीं है ।
मैंने ब्रेंट के जवाब को वोट दिया , क्योंकि उनका परिदृश्य निश्चित रूप से पानी को खराब कर सकता था, चाहे बैकअप में टीडीई डेटा हो।
हालाँकि, यदि आपने TDE को कुछ समय के लिए सक्षम किया है, तो ऐसा लगता है कि RESTORE FILELISTONLY (Transact-SQL) आपके द्वारा दी गई जानकारी प्रदान कर सकता है । रिजल्ट सेट पर एक कॉलम होता है TDEThumbprintजिसे "डेटाबेस एन्क्रिप्शन कुंजी के थंबप्रिंट को दिखाता है। एन्क्रिप्टर थंबप्रिंट प्रमाणपत्र का SHA-1 हैश है जिसके साथ कुंजी एन्क्रिप्ट किया गया है।"
मैंने अपने कुछ बैकअप देखे जो TDE एन्क्रिप्टेड थे और TDE एन्क्रिप्टेड नहीं थे।
मेरे TDE डेटाबेस के बैकअप में उस कॉलम में प्रमाणपत्र थंबप्रिंट था और जिन बैकअप में TDE डेटाबेस नहीं था, वे शून्य थे।
स्कॉट के उत्तर का विस्तार करते हुए, यहां SQL क्वेरी है जो आपको बताएगी कि बैकअप एन्क्रिप्टेड है या नहीं।
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'