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 do razão somente acréscimo permitem somente operações INSERT em suas tabelas, o que garante que usuários privilegiados, como os 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 razão somente de acréscimo são ideais para sistemas que não atualizam ou excluem registros, como os sistemas de gerenciamento de eventos e informações de segurança ou sistemas blockchain em que os dados precisam ser replicados do blockchain para um banco de dados. Como não há nenhuma operação UPDATE ou DELETE em uma tabela somente de acréscimo, não há necessidade de uma tabela de histórico correspondente, como acontece com as Tabelas razão que são atualizáveis.
Você pode criar uma tabela de razão somente de acréscimo especificando o argumento LEDGER = ON na sua 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 tabelas razão somente de acréscimo
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 do razão somente de acréscimo, GENERATED ALWAYS colunas são criadas na tabela do 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 |
| ledger_start_sequence_number | bigint | O número de sequência de uma operação dentro de uma transação que criou uma versão de linha |
Exibição do razão
Para cada tabela razão somente de acréscimo, o sistema gera automaticamente uma exibição chamada de exibição do razão. A exibição do razão relata todas as inserções de linha que ocorreram na tabela. A exibição do razão é útil principalmente para tabelas razão atualizáveis e não para tabelas razão somente de acréscimo, pois as tabelas razão somente de acréscimo não têm as funcionalidades UPDATE ou DELETE. A exibição do razão para tabelas razão somente de acréscimo está disponível para fazer a consistência entre as tabelas razão atualizáveis e as somente de acréscimo.
Esquema de exibição do razão
Observação
Os nomes da coluna de exibição do 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. |
| ledger_sequence_number | bigint | O número de sequência de uma operação em nível de linha dentro da transação na tabela. |
| ledger_operation_type | tinyint | Contém 1 (INSERT) ou 2 (DELETE). A inserção de uma linha na tabela do razão produz uma nova linha na exibição do razão contendo 1 nessa coluna. A exclusão de uma linha da tabela do razão produz uma nova linha na exibição do razão contendo 2 nessa coluna. A atualização de uma linha na tabela do razão produz duas novas linhas na exibição do 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 somente de acréscimo. |
| ledger_operation_type_desc | nvarchar(128) | Contém INSERT ou DELETE. Para saber mais, confira a linha anterior. |