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 2016 (13.x) e versões
posteriores Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Para entender a segurança como ela se aplica às tabelas temporais, você deve entender os princípios de segurança que se aplicam às tabelas temporais. Depois de entender esses princípios de segurança, você estará pronto para mergulhar na segurança em torno das declarações CREATE TABLE, ALTER TABLEe 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 usuários não podem alterar os dados do histórico, independentemente de suas permissões reais 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. A auditoria precisa ser habilitada explicitamente para a tabela de histórico. Uma vez habilitada, a auditoria na tabela de histórico captura regularmente todas as tentativas diretas de acessar os dados (independentemente de terem sido bem-sucedidas ou não).SELECT com extensão de consulta temporal mostra que a tabela de histórico foi afetada com essa operação.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 DML na tabela atual revelam que a tabela de histórico foi afetada, mas additional_information fornece o contexto necessário (DML foi resultado de SYSTEM_VERSIONING). |
1 Se tiver permissão ALTER na tabela atual e na tabela de histórico e remover uma coluna na tabela atual, a coluna associada na tabela de histórico também será removida, 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 de esquema ALTER não permitidas
| 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 ALTER TABLE permitidas
| 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 nos quais as tabelas atual e de histórico estão sendo criadas |
CREATE TABLE permissão no banco de dadosALTER permissão no esquema no qual a tabela atual será criada.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 no banco de dados ou devido à falta de permissões para alterar esquemas para qualquer 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, 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 temporal SET (SYSTEM_VERSIONING ON/OFF)
| 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 sobre os esquemas nos quais a tabela de histórico é criada. |
CONTROL permissão na tabela original que foi alterada.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. 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 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 as SELECT declarações que afetam a tabela de histórico, é necessária SELECT permissão tanto na tabela atual quanto na tabela de histórico.
Conteúdo relacionado
- Tabelas temporais
- Introdução às 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