답변:
1 테라 바이트의 데이터베이스를 가지고 있다고 잠시 상상해보십시오. 백업하는 데 시간이 걸리고 암호화하는 데 시간이 걸립니다. 그래서 상상해보십시오.
전체 백업 복원을 완료하자마자 TDE를 계속 적용하고 나머지 데이터베이스를 암호화하는 경우 쿼리가 반환 될 것으로 예상되는 것은 무엇입니까?
반대로 이미 암호화 된 데이터베이스로 시작하고 다음을 상상해보십시오.
쿼리가 무엇을 반환 할 것으로 예상하십니까? 다음은 TDE 암호화가 msdb.dbo.backupset에 포함 된 필드 중 하나가 아닌 이유 시나리오의 예 입니다.
그의 시나리오는 백업에 TDE 데이터가 포함되어 있는지 여부에 대해 물을 흐릿하게 만들 수 있기 때문에 브렌트의 대답에 찬성 투표 했습니다.
그러나 잠시 동안 TDE를 사용하도록 설정 한 경우 REFILE FILELISTONLY (Transact-SQL) 가 사용자가 따르는 정보를 제공 할 수 있습니다 . 결과 집합에는 TDEThumbprint"데이터베이스 암호화 키의 지문이 표시됩니다. 암호화 지문은 키가 암호화 된 인증서의 SHA-1 해시"라는 열이 있습니다.
TDE 암호화 및 TDE 암호화가 아닌 일부 백업을 살펴 보았습니다.
내 TDE 데이터베이스의 백업은 해당 열에 인증서 지문이 있고 TDE 데이터베이스가없는 백업은 널입니다.
Scott의 답변을 확장하면 백업이 암호화되었는지 여부를 알려주는 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'