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 Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Para entender como a segurança se aplica às tabelas temporais, é necessário entender os princípios de segurança que se aplicam a elas. Após entender esses princípios, você estará pronto para saber mais sobre a segurança das 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 |
|---|---|
| Habilitar/desabilitar o controle de versão do sistema requer privilégios mais altos sobre os objetos afetados | Habilitar e desabilitar SYSTEM_VERSIONING requer a permissão CONTROL na tabela atual e 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 os dados de histórico, independentemente de suas permissões reais na tabela atual ou na tabela 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. A auditoria precisa ser habilitada explicitamente para a tabela de histórico. Depois de habilitada, a auditoria na tabela de histórico captura regularmente todas as tentativas diretas de acessar os dados (independentemente de serem bem-sucedidas ou não).SELECT com a extensão de consulta temporal mostra que a tabela de histórico foi afetada com essa operação.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 DML na tabela atual mostram que a tabela de histórico foi afetada, mas additional_information fornece o contexto necessário (DML foi resultado de SYSTEM_VERSIONING). |
1 Se você tiver a permissão ALTER na tabela atual e na tabela de histórico e descartar uma coluna na tabela atual, a coluna associada na tabela de histórico também será 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 de esquema ALTER não permitidas
| Operation | Tabela atual | Tabela de histórico |
|---|---|---|
DROP TABLE |
Disallowed | Disallowed |
ALTER TABLE...SWITCH PARTITION |
Somente SWITCH IN (consulte Partição com tabelas temporais) |
Somente SWITCH OUT (consulte Partição com tabelas temporais) |
ALTER TABLE...DROP PERIOD |
Disallowed | N/A |
ALTER TABLE...ADD PERIOD |
N/A | Disallowed |
Operações ALTER TABLE permitidas
| Operation | Current | History |
|---|---|---|
ALTER TABLE...REBUILD |
Permitido (independentemente) | Permitido (de forma independente) |
CREATE INDEX |
Permitido (independentemente) | Permitido (independentemente) |
CREATE STATISTICS |
Permitido (independentemente) | Permitido (de forma independente) |
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 | Permissão CREATE TABLE no banco de dadosPermissão ALTER nos esquemas nos quais as tabelas atual e de histórico são criadas |
Permissão CREATE TABLE no banco de dadosPermissão ALTER no esquema no qual a tabela atual será criada.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 devido à falta de permissões para alterar os esquemas dessa tabela. | 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. |
Segurança da instrução ALTER temporal table SET (SYSTEM_VERSIONING ON/OFF)
| 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 nos quais a tabela de histórico está sendo criada. |
Permissão CONTROL na tabela original que foi alterada.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. Esta 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 as instruções SELECT que afetam a tabela de histórico, a permissão SELECT é necessária para a tabela atual e para a tabela de histórico.
Conteúdo relacionado
- Tabelas temporais
- Introdução a tabelas temporais com controle de versão do 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 com controle de versão do sistema e tabelas com otimização de memória
- Exibições e funções de metadados de tabela temporal