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 2016 (13.x) e versões
posteriores Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
SQL database in Microsoft Fabric
Para proteger tabelas temporais, você deve entender os princípios de segurança que se aplicam a elas. Depois de entender esses princípios, você pode aplicar os princípios 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:
| Princípio | Description |
|---|---|
| Habilitar/desabilitar o controle de versão do sistema requer privilégios mais altos sobre os objetos afetados | Ativar e desativar SYSTEM_VERSIONING requer a permissão CONTROL tanto na tabela atual quanto na tabela de histórico. |
| Os dados de histórico não podem ser modificados diretamente | Quando SYSTEM_VERSIONING é ON, os usuários não podem alterar dados de histórico, independentemente de suas permissões na tabela atual ou de histórico. Essa limitação inclui modificações nos dados e no esquema.
1 |
Consultar dados de histórico requer a permissão SELECT na tabela de histórico |
Um usuário com permissão SELECT na tabela atual não tem automaticamente a permissão SELECT na tabela de histórico. |
| Uma auditoria revela operações que afetam a tabela de histórico de formas específicas | As configurações de auditoria da tabela atual não são automaticamente aplicadas à tabela de histórico. Você deve ativar a auditoria explicitamente para a tabela de histórico. Depois de ativá-lo, a auditoria na tabela de histórico registra todas as tentativas diretas de acessar os dados, independentemente de terem êxito ou não. A extensão de consulta temporal SELECT mostra que a operação afetou a tabela de histórico.A tabela temporal CREATE/ALTER expõe informações de que essa verificação de permissão também ocorre 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 resultado de SYSTEM_VERSIONING). |
1 Se você tem ALTER permissão sobre a tabela atual e a tabela de histórico, e você elimina uma coluna na tabela atual, a coluna associada na tabela de histórico também é descartada, mesmo que SYSTEM_VERSIONING seja ON.
Executar operações de esquema
Quando SYSTEM_VERSIONING é definido como ON, as operações de modificação do esquema são limitadas.
Operações proibidas ALTER SCHEMA
| Operation | Tabela atual | Tabela de histórico |
|---|---|---|
DROP TABLE |
Não permitido | Não permitido |
ALTER TABLE...SWITCH PARTITION |
SWITCH IN somente (consulte Particionamento com tabelas temporais) |
SWITCH OUT somente (consulte Particionamento com tabelas temporais) |
ALTER TABLE...DROP PERIOD |
Não permitido | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Não permitido |
Operações permitidas ALTER TABLE
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Permitido (independentemente) | Permitido (independentemente) |
CREATE INDEX |
Permitido (independentemente) | Permitido (independentemente) |
CREATE STATISTICS |
Permitido (independentemente) | Permitido (independentemente) |
Segurança da instrução CREATE temporal table
| 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 em que você cria as tabelas atual e de histórico |
CREATE TABLE permissão no banco de dadosALTER Permissão no esquema onde você cria a tabela atual.Permissão CONTROL 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 no banco 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, devido à falta de permissões para alterar o esquema da tabela temporal ou à falta de permissões na tabela do histórico. |
mostra que a operação afetou a tabela de histórico. SET (SYSTEM_VERSIONING)
| Feature | Criar nova tabela de histórico | Reutilizar tabela de histórico existente |
|---|---|---|
| Permissão necessária | Permissão CONTROL no banco de dados.Permissão CREATE TABLE no banco de dados.Permissão ALTER nos esquemas onde você cria a tabela de histórico. |
Permissão CONTROL na tabela original que você altera.Permissão CONTROL na 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 do histórico foi criada ao mesmo tempo. Essa operação pode falhar devido à falta de permissões para criar uma tabela no banco 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 requer acesso à tabela de histórico. A operação pode falhar devido à falta de permissões para a tabela de histórico ou para a tabela atual. |
Segurança da instrução SELECT
A permissão SELECT é inalterada para as instruções SELECT que não afetam a tabela de histórico. Para instruções SELECT que afetam a tabela de histórico, é necessário ter a permissão SELECT tanto na tabela atual quanto na tabela de histórico.
Conteúdo relacionado
- Tabelas temporais
- Primeiros passos com 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
- Gerenciar a retenção de dados históricos em tabelas temporárias com versão do sistema
- Tabelas temporais versionadas pelo sistema com tabelas otimizadas para memória
- Exibições e funções de metadados de tabela temporal