Segurança da tabela temporal

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Banco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Para compreender como a segurança se aplica às tabelas temporais, é importante entender as entidades de segurança que se aplicam a elas. Quando entender esses princípios, você estará pronto para saber mais sobre a segurança das instruçõ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:

Princípio DESCRIÇÃO
Habilitar/desabilitar a determinação 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 do histórico
Os dados do histórico não podem ser modificados diretamente Quando SYSTEM_VERSIONING está ATIVADO, os usuários não podem alterar os dados do histórico, independentemente de suas permissões reais na tabela atual ou na tabela do histórico. Isso inclui as modificações dos dados e do esquema.
Consultar dados de histórico requer a permissão SELECT para a tabela do histórico Ter apenas a permissão SELECT para a tabela atual não implica em ter a permissão SELECT para a tabela do histórico.
Operações de auditoria de superfície que afetam a tabela do 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).

A permissãoSELECT com a extensão de consulta temporal mostra que a tabela do histórico foi afetada com essa operação.

A tabela temporalCREATE/ALTER que expõe informações verificadas por essa permissão também ocorre na tabela do histórico. O arquivo de auditoria inclui um registro adicional para a tabela do histórico.

As operações de DML na superfície da tabela atual cuja tabela do histórico foi afetada, exceto additional_info, fornecem o contexto necessário (DML foi resultado de system_versioning).

Executando operações de esquema

Quando SYSTEM_VERSIONING é definido como ATIVO, as operações de modificação do esquema são limitadas.

Operações de esquema ALTER não permitidas

Operação Tabela atual Tabela de histórico
DROP TABLE Não permitido Não permitido
ALTER TABLE...SWITCH PARTITION Somente SWITCH IN (veja Particionamento de tabelas temporais) Somente SWITCH OUT (veja Particionamento de tabelas temporais)
ALTER TABLE...DROP PERIOD Não permitido -
ALTER TABLE...ADD PERIOD - Não permitido

Operações ALTER TABLE permitidas

Operação Current Histórico
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 CREATE Temporal TABLE

Recurso Criar nova tabela de histórico Reutilizar tabela de histórico existente
Permissão necessária PermissãoCREATE TABLE no banco de dados

PermissãoALTER para os esquemas nos quais a tabela atual e a tabela do histórico são criadas.
PermissãoCREATE TABLE no banco de dados

PermissãoALTER para o esquema no qual a tabela atual será criada.

PermissãoCONTROL para a 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. 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 ATIVADO/DESATIVADO)

Recurso Criar nova tabela de histórico Reutilizar tabela de histórico existente
Permissão necessária PermissãoCONTROL no banco de dados

PermissãoCREATE TABLE no banco de dados

PermissãoALTER para os esquemas nos quais a tabela do histórico é criada
PermissãoCONTROL para a tabela original que foi alterada

PermissãoCONTROL para 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 do histórico foi criada ao mesmo tempo. A operação pode falhar devido à falta de permissões para criar uma tabela no banco de dados, devido à 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 para a tabela do histórico. A operação pode falhar devido à falta de permissões para a tabela do histórico ou para a tabela atual.

Segurança da instrução SELECT

A permissãoSELECT é inalterada para as instruções SELECT que não afetam a tabela do histórico. Para as instruções SELECT que afetam a tabela do histórico, a permissão SELECT é necessária para a tabela atual e para a tabela do histórico.

Consulte Também