Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2022 (16.x) e versões posteriores
Banco de Dados SQL do Azure
Instância Gerenciada do Azure SQL
As tabelas de livro-razão de somente anexação permitem apenas operações INSERT nas tabelas, garantindo que usuários privilegiados, como administradores de banco de dados, não possam alterar dados por meio de operações tradicionais de Linguagem de Manipulação de Dados. As tabelas de razão de acréscimo único são ideais para sistemas que não atualizam nem excluem registros, como sistemas de gerenciamento de eventos e informações de segurança ou sistemas de blockchain nos quais os dados precisam ser replicados da blockchain para um banco de dados. Como não há operações UPDATE nem DELETE em uma tabela somente de anexação, não há necessidade de uma tabela de histórico correspondente, como ocorre com as tabelas de razão atualizáveis.
Você pode criar uma tabela de ledger somente acréscimo especificando o argumento LEDGER = ON na instrução CREATE TABLE (Transact-SQL) e especificando a opção APPEND_ONLY = ON.
Importante
Depois que uma tabela é criada como uma tabela de ledger, ela não pode ser convertida novamente em uma tabela sem funcionalidade de ledger. Como resultado, um invasor não pode remover temporariamente os recursos de ledger, fazer alterações na tabela e, em seguida, reativar a funcionalidade de ledger.
Esquema de tabela de livro-razão somente anexável
Uma tabela somente anexável precisa ter as seguintes colunas GENERATED ALWAYS que contêm metadados indicando quais transações fizeram alterações na tabela e a ordem das operações pelas quais as linhas foram atualizadas pela transação. Quando você cria uma tabela de razão somente acréscimo, GENERATED ALWAYS colunas serão criadas em sua tabela de razão. Esses dados são úteis para fins de análise forense no entendimento de como os dados foram inseridos ao longo do tempo.
Se você não especificar as definições das GENERATED ALWAYS colunas na CREATE TABLE instrução, o sistema as adicionará automaticamente usando os nomes padrão a seguir.
| Nome da coluna padrão | Tipo de dados | Descrição |
|---|---|---|
| ledger_start_transaction_id | bigint | A ID da transação que criou uma versão de linha |
| número de sequência inicial do razão | bigint | O número de sequência de uma operação dentro de uma transação que criou uma versão de linha |
Visualização do livro-razão
Para cada tabela de livro-razão somente acréscimo, o sistema gera automaticamente uma visão, chamada visão de livro-razão. A visualização do ledger mostra todas as inserções de linhas que ocorreram na tabela. A exibição do ledger é útil principalmente para tabelas de ledger atualizáveis, em vez de tabelas de ledger somente de acréscimo, porque as tabelas de ledger somente de acréscimo não têm os recursos UPDATE nem DELETE. A exibição do razão para tabelas de razão somente de acréscimo está disponível para garantir consistência entre as tabelas de razão atualizáveis e as tabelas de razão somente de acréscimo.
Esquema da visualização do livro-razão
Observação
Os nomes das colunas da exibição do livro-razão podem ser personalizados quando você cria a tabela usando o parâmetro <ledger_view_option> com a instrução CREATE TABLE (Transact-SQL). Para obter mais informações, consulte as opções de exibição do ledger e os exemplos correspondentes em CREATE TABLE (Transact-SQL).
| Nome da coluna padrão | Tipo de dados | Descrição |
|---|---|---|
| ledger_transaction_id | bigint | A ID da transação que criou ou excluiu uma versão de linha. |
| numero_de_sequencia_do_livro_razao | bigint | O número de sequência de uma operação em nível de linha dentro da transação na tabela. |
| tipo_de_operação_do_razão_contábil | tinyint | Contém 1 (INSERT) ou 2 (DELETE). A inserção de uma linha na tabela de razão gera uma nova linha na exibição de razão que contém 1 nesta coluna. Excluir uma linha da tabela de razão gera uma nova linha na exibição de razão que contém 2 nesta coluna. A atualização de uma linha na tabela de razão gera duas novas linhas na exibição de razão. Uma linha contém 2 (DELETE) e a outra linha contém 1 (INSERT) nesta coluna. Um DELETE não deve ocorrer em uma tabela de razão contábil somente de acréscimo. |
| descrição do tipo de operação do livro razão | nvarchar(128) | Contém INSERT ou DELETE. Para saber mais, confira a linha anterior. |