AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 233674
Accepted
yegnasew
yegnasew
Asked: 2019-04-02 09:20:29 +0800 CST2019-04-02 09:20:29 +0800 CST 2019-04-02 09:20:29 +0800 CST

Como descobrir se o backup do SQL Server está criptografado com TDE sem restaurar o backup

  • 772

Existe uma maneira de encontrar no arquivo de backup do SQL Server ou nas tabelas MSDB se o backup estiver criptografado com TDE sem tentar restaurar o arquivo de backup?

Obrigado

sql-server
  • 3 3 respostas
  • 3327 Views

3 respostas

  • Voted
  1. Scott Hodgin - Retired
    2019-04-02T09:57:01+08:002019-04-02T09:57:01+08:00

    Eu votei na resposta de Brent , pois seu cenário definitivamente poderia confundir a água sobre se o backup continha dados TDE.

    No entanto, se você tiver a TDE habilitada por um tempo, parece que RESTORE FILELISTONLY (Transact-SQL) pode fornecer as informações que você procura. Há uma coluna no conjunto de resultados chamada TDEThumbprint"Mostra a impressão digital da chave de criptografia do banco de dados. A impressão digital do criptografador é um hash SHA-1 do certificado com o qual a chave é criptografada".

    Eu olhei para alguns dos meus backups que eram criptografados com TDE e não criptografados com TDE.

    Os backups dos meus bancos de dados TDE tinham a impressão digital do certificado nessa coluna e os backups que não tinham bancos de dados TDE tinham null.

    • 30
  2. Best Answer
    Brent Ozar
    2019-04-02T09:27:41+08:002019-04-02T09:27:41+08:00

    Imagine por um segundo que você tem um banco de dados de 1 terabyte. O backup demora um pouco e a criptografia demora um pouco. Então imagine que:

    • 9:00 AM - você começa a fazer um backup completo
    • 9:01 AM - em outra janela, você começa a habilitar o TDE no banco de dados
    • 9h05 - o backup é concluído
    • 9h10 - TDE concluído

    O que você espera que sua consulta retorne, já que assim que você terminar de restaurar o backup completo, ele continuará aplicando a TDE, criptografando o restante do seu banco de dados?

    Por outro lado, imagine que você comece com um banco de dados já criptografado e:

    • 9:00 AM - você remove o TDE (o que leva algum tempo)
    • 9h01 - você inicia um backup completo
    • 9h05 - as páginas de dados não são mais criptografadas
    • 9h06 - seu backup completo é concluído

    O que você espera que a consulta retorne? Esses são exemplos de cenários de por que a criptografia TDE não é um dos campos incluídos em msdb.dbo.backupset .

    • 10
  3. Anthony Genovese
    2019-10-30T15:04:18+08:002019-10-30T15:04:18+08:00

    Estendendo a resposta de Scott, aqui está a consulta SQL que informará se um backup é criptografado ou não.

    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'
    
    • 2

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve