Razão no SQL Server 2022

Concluído

Como você sabe que seus dados foram ou não adulterados? Você pode provar que seus dados não foram adulterados para auditores e reguladores? Como você pode estabelecer confiança com seus clientes, parceiros ou stakeholders em um mundo em grande parte digital e controlado por dados que muitas pessoas compartilham? As tecnologias de blockchain distribuídas são um divisor de águas para estabelecer a confiança. No entanto, eles são complexos, introduzem novas linguagens de programação e ambientes, oferecem recursos limitados de gerenciamento de dados e têm um desempenho ruim em comparação com sistemas de banco de dados relacionais. E se houvesse uma alternativa mais simples e com melhor desempenho para estabelecer a confiança entre os limites organizacionais?

O razão é uma tecnologia que oferece o poder do blockchain no SQL do Azure e no SQL Server. O razão permite estabelecer a confiança entre diferentes entidades de negócios, mantendo a simplicidade e o desempenho de um banco de dados relacional. Os dados são gerenciados centralmente e você pode atestar criptograficamente para outras partes que seus dados podem ser confiáveis e não foram adulterados. Essa verificação é especialmente útil se seus registros precisarem ser auditados.

Diagrama do fluxo do razão no Banco de Dados SQL do Azure ou no SQL Server.

Como funciona o razão

Todas as linhas modificadas por uma transação em uma tabela do razão são convertidas criptograficamente em um hash SHA-256 por meio de uma estrutura de dados de árvore Merkle que cria um hash raiz representando todas as linhas da transação. As transações processadas pelo banco de dados são convertidas em hash SHA-256 usando uma estrutura de dados de árvore Merkle. O resultado é um hash raiz que forma um bloco. O bloco é então criptografado com hash SHA-256 usando o hash raiz do bloco junto com o hash raiz do bloco anterior como entrada para a função de hash. Essa criptografia com hash forma um blockchain.

Os hashes raiz do razão do banco de dados, também chamados de resumos de banco de dados, contêm as transações convertidas criptograficamente em hash e representam o estado do banco de dados. Eles podem ser gerados periodicamente e armazenados fora do banco de dados no armazenamento à prova de adulteração. Por exemplo, um Armazenamento de Blobs do Azure configurado com políticas de imutabilidade, Razão Confidencial do Azure ou dispositivos de armazenamento WORM (Gravação Após Leitura Frequente) local. Posteriormente, você pode usar resumos de banco de dados para verificar a integridade do banco de dados. Você compara o valor do hash no resumo com os hashes calculados no banco de dados.

A funcionalidade do razão é introduzida em tabelas de duas maneiras:

  • Tabelas do razão atualizáveis, que permitem que você atualize e exclua linhas em suas tabelas.
  • Tabelas do razão somente de acréscimo, que permitem apenas inserções em suas tabelas.

Tanto as tabelas do razão atualizáveis quanto as tabelas do razão somente de acréscimo fornecem evidências de adulteração e funcionalidades para análise forense digital.

Tabelas do razão

Vamos aprender mais sobre as tabelas do razão atualizáveis e as tabelas do razão somente acréscimo.

Tabelas do razão atualizáveis

As tabelas do razão atualizáveis são ideais para padrões de aplicativo que esperam emitir atualizações e exclusões para tabelas no seu banco de dados. Não é necessário alterar os padrões de dados existentes no aplicativo para habilitar a funcionalidade de razão.

As tabelas do razão atualizáveis são tabelas com um controle de versão do sistema nas quais os usuários podem fazer atualizações e exclusões, fornecendo também funcionalidades de evidência de adulteração. Quando ocorrem atualizações ou exclusões, todas as versões anteriores de uma linha são preservadas em uma tabela secundária, conhecida como a tabela de histórico. A tabela de histórico espelha o esquema da tabela do razão atualizável. Quando uma linha é atualizada, a última versão da linha permanece na tabela do razão, enquanto a versão anterior é inserida na tabela de histórico pelo sistema, de modo transparente para o aplicativo.

Os valores contidos na tabela do razão atualizável e na tabela de histórico correspondente fornecem uma crônica dos valores do banco de dados ao longo do tempo. Uma exibição de razão gerada pelo sistema combina a tabela do razão atualizável e a tabela de histórico, permitindo que você consulte facilmente essa crônica do banco de dados.

Para obter mais informações, confira Tabelas do razão atualizáveis.

Tabelas do razão somente de acréscimo

As tabelas do razão somente acréscimo são ideais para padrões de aplicativo que são somente inserção. As tabelas do razão somente de acréscimo bloqueiam atualizações e exclusões no nível da API. Esse bloqueio oferece mais proteção contra adulterações feitas por usuários privilegiados, como administradores do sistema e DBAs (administradores de banco de dados).

Já que apenas inserções são permitidas no sistema, as tabelas do razão somente de acréscimo não têm uma tabela de histórico correspondente, pois não há histórico a ser capturado. Assim como as tabelas do razão atualizáveis, uma exibição do razão fornece insights sobre a transação que inseriu linhas na tabela somente acréscimo e o usuário que realizou a inserção.

Para obter mais informações, consulte Tabelas do razão somente de acréscimo.

Gerenciamento de resumo

O hash do bloco mais recente no razão do banco de dados é chamado de resumo do banco de dados. Ele representa o estado de todas as tabelas razão no banco de dados no momento que o bloco foi gerado.

Quando um bloco é formado, o resumo de banco de dados associado a ele é publicado e armazenado fora do banco de dados em um armazenamento à prova de adulterações. Como os resumos do banco de dados representam o estado do banco de dados no momento que foram gerados, proteger os resumos contra adulteração é fundamental.

O Razão fornece uma maneira de gerar e armazenar automaticamente os resumos do banco de dados no armazenamento imutável ou em um Razão Confidencial do Azure para evitar a adulteração. Como alternativa, os usuários podem gerar resumos de banco de dados manualmente e armazená-los na localização de preferência. Os resumos de banco de dados são usados para verificar se os dados armazenados nas tabelas do razão não foram adulterados.

Para obter mais informações, confira Gerenciamento de resumos.

Verificação de banco de dados

O recurso do razão não permite modificar o conteúdo de exibições do sistema do razão, das tabelas somente acréscimo e das tabelas de histórico. No entanto, um invasor ou administrador do sistema que tenha controle do computador pode ignorar todas as verificações do sistema e adulterar diretamente os dados. Por exemplo, um invasor ou administrador do sistema pode editar os arquivos de banco de dados no armazenamento. O Razão não pode evitar esses ataques, mas garante que qualquer adulteração seja detectada quando os dados do razão são verificados.

O processo de verificação do razão usa como entrada um ou mais resumos de banco de dados gerados anteriormente. Em seguida, ele recompila os hashes armazenados no razão do banco de dados com base no estado atual das tabelas do razão. Se os hashes computados não corresponderem aos resumos de entrada, a verificação falhará, indicando que os dados foram adulterados. Em seguida, o Razão relata todas as inconsistências detectadas por ele.

Para obter mais informações, confira Verificação de banco de dados.

Agora que aprendemos sobre o razão, vamos aprender a usá-lo.