Представьте на секунду, что у вас есть база данных объемом 1 терабайт. Резервное копирование занимает некоторое время, а шифрование - некоторое время. Итак, представьте, что:
- 9:00 утра - вы начинаете делать полную резервную копию
- 9:01 утра - в другом окне вы начинаете включать TDE в базе данных
- 9:05 - резервное копирование завершено
- 9:10 утра - TDE завершает
Что вы ожидаете получить от вашего запроса, учитывая, что как только вы закончите восстановление полной резервной копии, он продолжит применять TDE, шифруя остальную часть вашей базы данных?
И наоборот, представьте, что вы начинаете с уже зашифрованной базы данных и:
- 9:00 утра - вы удаляете TDE (что занимает некоторое время)
- 9:01 утра - вы начинаете полное резервное копирование
- 9:05 - страницы данных больше не шифруются
- 9:06 утра - ваше полное резервное копирование завершено
Что вы ожидаете от запроса? Это примеры сценариев того, почему шифрование TDE не входит в число полей, включенных в msdb.dbo.backupset .
Я проголосовал за ответ Брента , так как его сценарий определенно мог затормозить вопрос о том, содержит ли резервная копия данные TDE.
Однако, если у вас некоторое время был включен TDE, кажется, что RESTORE FILELISTONLY (Transact-SQL) может предоставить информацию, которую вы ищете. В наборе результатов есть столбец,
TDEThumbprint
который называется «Показывает отпечаток ключа шифрования базы данных. Отпечаток шифратора представляет собой хэш SHA-1 сертификата, с помощью которого ключ шифруется».Я посмотрел на некоторые из моих резервных копий, которые были зашифрованы TDE и не зашифрованы TDE.
Резервные копии моих баз данных TDE имели отпечаток сертификата в этом столбце, а резервные копии, в которых не было баз данных TDE, имели нулевое значение.
источник
Расширяя ответ Скотта, вот SQL-запрос, который сообщит вам, зашифрована ли резервная копия или нет.
источник