Controlando o acesso a dados com visualizações em SQL

click fraud protection

Base de dados as visualizações reduzem a complexidade da experiência do usuário final e limitam o acesso dos usuários aos dados contidos nas tabelas do banco de dados. Essencialmente, uma visualização usa os resultados de um consulta de banco de dados para preencher dinamicamente o conteúdo de uma tabela de banco de dados virtual.

Por que usar visualizações?

Existem dois motivos principais para fornecer aos usuários acesso aos dados por meio de visualizações, em vez de fornecer a eles acesso direto às tabelas do banco de dados:

  • As visualizações fornecem segurança simples e granular. Use uma visualização para limitar os dados que um usuário tem permissão para ver em uma tabela. Por exemplo, se você tem uma tabela de funcionários e deseja fornecer a alguns usuários acesso aos registros de funcionários em tempo integral, pode criar uma visão que contenha apenas esses registros. Isso é muito mais fácil do que a alternativa (criar e manter uma tabela sombra) e garante a integridade dos dados.
  • instagram viewer
  • Visualizações simplificam a experiência do usuário. As visualizações ocultam detalhes complexos de suas tabelas de banco de dados de usuários finais que não precisam vê-los. Se um usuário despejar o conteúdo de uma visualização, ele não verá as colunas da tabela que não foram selecionadas pela visualização e pode não entender. Isso os protege da confusão causada por colunas com nomes inadequados, identificadores exclusivos e chaves de mesa.

Criação de uma visão

Criar uma visão é bastante simples: simplesmente crie uma consulta que contenha as restrições que você deseja impor e coloque-a dentro do comando CREATE VIEW. Esta é a sintaxe geral:

CRIAR VIEW viewname AS

Por exemplo, para criar a visão do funcionário em tempo integral, emita o seguinte comando:

CRIAR VISUALIZAÇÃO em tempo integral COMO
SELECT first_name, last_name, employee_id
DE funcionários
WHERE status = 'FT';

Modificando uma visão

Alterar o conteúdo de uma visão usa exatamente a mesma sintaxe que a criação de uma visão, mas use o comando ALTER VIEW em vez do comando CREATE VIEW. Por exemplo, para adicionar uma restrição à visualização em tempo integral que adiciona o número de telefone do funcionário aos resultados, emita o seguinte comando:

ALTER VIEW fulltime AS
SELECT first_name, last_name, employee_id, telephone
DE funcionários
WHERE status = 'FT';

Excluindo uma Visualização

É simples remover uma visualização de um banco de dados usando o comando DROP VIEW. Por exemplo, para excluir a visão do funcionário em tempo integral, use o seguinte comando:

DROP VIEW fulltime; 

Visualizações vs. Vistas Materializadas

Uma visão é uma mesa virtual. UMA visão materializada é a mesma visualização gravada no disco e acessada como se fosse uma tabela própria.

Quando você executa uma consulta em uma visualização, a consulta secundária que origina a visualização é executada em tempo real e, em seguida, esses resultados retornam à consulta principal original. Se suas visualizações são excepcionalmente complexas, ou sua consulta principal requer um grande número de junções hash entre várias tabelas e visualizações, sua consulta principal será executada com a velocidade de uma tartaruga.

Uma visão materializada acelera a execução da consulta porque funciona como uma consulta pré-compilada gravada no disco e, portanto, é executada tão rapidamente quanto uma tabela. No entanto, as visualizações materializadas são tão boas quanto os procedimentos de evento que as atualizam. No longo prazo, com boa manutenção, as visualizações materializadas aceleram as coisas com uma pequena compensação no tempo de atualização de atraso, sem o necessidade de um monte de tabelas de sombra que podem se tornar inativas e consumir espaço em disco ou gerar as consultas de outra pessoa inapropriadamente.

instagram story viewer