Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2022 (16.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
As tabelas de livro-razão apenas adicionáveis permitem apenas INSERT operações nas suas tabelas, o que garante que utilizadores privilegiados, como administradores de bases de dados, não podem alterar dados através das operações tradicionais da Linguagem de Manipulação de Dados . Tabelas de registo só de adição são ideais para sistemas que não atualizam nem eliminam registos, como os sistemas de gestão de informações e eventos de segurança ou sistemas de cadeias de blocos, onde os dados precisam ser replicados da cadeia de blocos para uma base de dados. Como não existem operações de UPDATE ou DELETE numa tabela apenas de acréscimo, não é necessária uma tabela de histórico correspondente, como acontece com as tabelas de registo atualizáveis.
Pode criar uma tabela de registo apenas anexável especificando o LEDGER = ON argumento na sua instrução CREATE TABLE (Transact-SQL) e especificando a APPEND_ONLY = ON opção.
Importante
Depois de uma tabela ser criada como tabela de registo, não pode ser revertida para uma tabela que não tenha funcionalidade de registo. Como resultado, um atacante não pode remover temporariamente capacidades do livro-registo, fazer alterações à tabela e depois reativar a funcionalidade do livro-registo.
Esquema de tabela de registo apenas para anexar
Uma tabela de apenas anexação deve ter as seguintes colunas GERADO SEMPRE que contenham metadados indicando quais transações fizeram alterações à tabela e a ordem das operações pela qual as linhas foram atualizadas pela transação. Quando crias uma tabela de registo apenas para anexar, GENERATED ALWAYS as colunas serão criadas na tua tabela de registo. Estes dados são úteis para fins forenses para compreender como os dados foram inseridos ao longo do tempo.
Se não especificar as definições das GENERATED ALWAYS colunas na instrução CREATE TABLE , o sistema adiciona-as automaticamente usando os seguintes nomes por defeito.
| Nome padrão da coluna | Tipo de dados | Description |
|---|---|---|
| ledger_start_transaction_id | bigint | O ID da transação que criou a versão de linha |
| número_de_sequência_de_início_do_ledger | bigint | O número de sequência de uma operação numa transação que resulta numa versão de linha. |
Vista do livro-razão
Para cada tabela de ledger apenas de anexação, o sistema gera automaticamente uma exibição, chamada "vista do ledger". A visualização do registo reporta todas as inserções de linhas que ocorreram na tabela. A vista do razão é principalmente útil para tabelas de registo atualizáveis, em vez de tabelas só de adição, porque as tabelas de registo só de adição não têm capacidade de UPDATE ou DELETE. A visualização do livro-razão para tabelas de livro-razão apenas adicionáveis está disponível para assegurar consistência entre tabelas de livro-razão atualizáveis e que apenas permitem adição.
Esquema de vista de registo
Observação
Os nomes das colunas da vista de ledger podem ser personalizados ao criar a tabela, usando o parâmetro <ledger_view_option> com a instrução CREATE TABLE (Transact-SQL). Para mais informações, consulte as opções de visualização do livro-razão e os exemplos relevantes em CREATE TABLE (Transact-SQL).
| Nome padrão da coluna | Tipo de dados | Description |
|---|---|---|
| ledger_transaction_id | bigint | ID da transação que criou ou eliminou uma versão de linha. |
| número_de_sequência_do_livro-razão | bigint | O número de sequência de uma operação a nível de linha dentro da transação na tabela. |
| tipo_operacao_livro_razão | tinyint | Contém 1 (INSERIR) ou 2 (DELETE). Inserir uma linha na tabela do livro-razão produz uma nova linha na visualização do livro-razão que contém 1 nesta coluna. Ao eliminar uma linha da tabela do livro razão, é produzida uma nova linha na visualização do livro razão, que contém 2 nesta coluna. Atualizar uma linha na tabela do livro razão gera duas novas linhas na visualização do livro razão. Uma linha contém 2 (DELETE), e a outra linha contém 1 (INSERT) nesta coluna. Um DELETE não deve ocorrer numa tabela de registo apenas de anexação. |
| descrição_tipo_operacao_registo | nvarchar (128) | Contém INSERT ou DELETE. Para mais informações, consulte a linha anterior. |