Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Base de Dados SQL do Azure
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Para proteger tabelas temporais, deve compreender os princípios de segurança que lhes são aplicáveis. Depois de compreender estes princípios, pode aplicar medidas de segurança às instruções CREATE TABLE, ALTER TABLE e SELECT.
Princípios de segurança
A tabela a seguir descreve os princípios de segurança que se aplicam às tabelas temporais:
| Principle | Description |
|---|---|
| Ativar/desativar o controle de versão do sistema requer os privilégios mais altos em objetos afetados | Habilitar e desabilitar SYSTEM_VERSIONING requer a permissão CONTROL na tabela atual e na tabela de histórico. |
| Os dados do histórico não podem ser modificados diretamente | Quando SYSTEM_VERSIONING é ON, os utilizadores não podem alterar dados de histórico, independentemente das suas permissões na tabela atual ou de histórico. Essa limitação inclui modificações de dados e esquemas.
1 |
Consultar dados do histórico requer permissão SELECT na tabela de histórico |
Um utilizador com permissão SELECT na tabela atual não tem automaticamente permissão SELECT na tabela de histórico. |
| A auditoria revela operações que afetam a tabela de histórico de maneiras específicas | As configurações de auditoria da tabela atual não são aplicadas automaticamente à tabela de histórico. Tens de ativar a auditoria explicitamente para a tabela de histórico. Depois de o ativar, a auditoria na tabela de histórico capta todas as tentativas diretas de aceder aos dados, independentemente de terem sido bem-sucedidas ou não.SELECT Com extensão de consulta temporal, mostra que a operação afetou a tabela de histórico.CREATE/ALTER tabela temporal expõe informações de que a verificação de permissão também acontece na tabela de histórico. O arquivo de auditoria contém registros adicionais para a tabela de histórico.As operações de linguagem de manipulação de dados (DML) na tabela atual revelam que a operação afetou a tabela de histórico, mas additional_information fornece o contexto necessário (DML foi o resultado de SYSTEM_VERSIONING). |
1 Se tiver ALTER permissão na tabela atual e na tabela de histórico, e eliminar uma coluna na tabela atual, a coluna associada na tabela de histórico também é eliminada, mesmo que SYSTEM_VERSIONING seja ON.
Executar operações de esquema
Quando SYSTEM_VERSIONING é definido como ON, as operações de modificação de esquema são limitadas.
Operações proibidas ALTER SCHEMA
| Operation | Tabela atual | Tabela de histórico |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
SWITCH IN apenas (consulte Partição com tabelas temporais) |
SWITCH OUT apenas (consulte Partição com tabelas temporais) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Operações permitidas ALTER TABLE
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Permitido (de forma independente) | Permitido (de forma independente) |
CREATE INDEX |
Permitido (de forma independente) | Permitido (de forma independente) |
CREATE STATISTICS |
Permitido (de forma independente) | Permitido (de forma independente) |
Segurança da instrução da tabela temporal CREATE
| Feature | Criar nova tabela de histórico | Reutilizar tabela de histórico existente |
|---|---|---|
| Permissão necessária |
CREATE TABLE permissão no banco de dadosALTER Permissão nos esquemas onde crias as tabelas atuais e de histórico |
CREATE TABLE permissão no banco de dadosALTER Permissão no esquema onde crias a tabela atual.CONTROL permissão na tabela de histórico especificada como parte da instrução CREATE TABLE que cria a tabela temporal. |
| Audit | A auditoria mostra que os usuários tentaram criar dois objetos. A operação pode falhar devido à falta de permissões para criar uma tabela na base de dados, ou à falta de permissões para alterar esquemas para qualquer uma das tabelas. | A auditoria mostra que a tabela temporal foi criada. A operação pode falhar devido à falta de permissão para criar uma tabela no banco de dados, falta de permissões para alterar o esquema para a tabela temporal ou falta de permissões na tabela de histórico. |
Segurança da instrução ALTER tabela SET temporal (SYSTEM_VERSIONING)
| Feature | Criar nova tabela de histórico | Reutilizar tabela de histórico existente |
|---|---|---|
| Permissão necessária |
CONTROL permissão no banco de dados.CREATE TABLE permissão no banco de dados.ALTER Permissão nos esquemas onde crias a tabela de histórico. |
CONTROL Permissão na tabela original que alteraste.CONTROL permissão sobre a tabela de histórico especificada como parte da instrução ALTER TABLE. |
| Audit | A auditoria mostra que a tabela temporal foi alterada e a tabela de histórico foi criada ao mesmo tempo. Esta operação pode falhar devido à falta de permissões para criar uma tabela na base de dados, à falta de permissões para alterar o esquema da tabela de histórico, ou à falta de permissão para modificar a tabela temporal. | A auditoria mostra que a tabela temporal foi alterada, mas a operação exigiu acesso à tabela de histórico. A operação pode falhar devido à falta de permissões na tabela de histórico ou à falta de permissões na tabela atual. |
Segurança da instrução SELECT
SELECT permissão permanece inalterada para SELECT instruções que não afetam a tabela de histórico. Para instruções SELECT que afetam a tabela de histórico, é necessária a permissão SELECT quer na tabela atual quer na tabela de histórico.
Conteúdo relacionado
- Tabelas temporais
- Comece a utilizar tabelas temporais versionadas pelo sistema
- Verificações de consistência do sistema de tabela temporal
- Partição com tabelas temporais
- Considerações e limitações da tabela temporal
- Gerencie a retenção de dados históricos em tabelas temporais versionadas pelo sistema
- Tabelas temporais versionadas pelo sistema com tabelas otimizadas para memória
- Exibições e funções de metadados de tabela temporal