Privilégios a nível da coluna em Oracle
Os únicos privilégios a nível da coluna em Oracle que podem ser atribuídos são INSERT, UPDATE e REFERENCES. Por exemplo, não se pode atribuir a autorização de SELECT a uma coluna específica.
No caso do Oracle se se pretender restringir a leitura a um subconjunto das colunas de uma tabela o mais conveniente é criar uma view vertical, constituída apenas pelas colunas que um determinado role poderá visualizar. Considere-se a tabela Data constante da Figura 1.
Pretende-se que o role sousa apenas consiga visualizar as colunas Data, Descrição Abreviada da Data e Século, então a solução é criar uma view vertical que inclua unicamente essas colunas (Figura 2).
Agora atribuindo a autorização SELECT sobre a view a sousa facilmente se obtém o resultado pretendido, ou seja, ultrapassou-se uma limitação dos privilégios a nível da coluna em Oracle (Figura 3).
Dadas as restrições limitadas atribuíveis a nível da coluna como dar a possibilidade a sousa de “apagar” (DELETE) os dados constantes de uma coluna?
Em primeiro lugar o role tem que possuir autorização para actualizar os dados (Figura 4).
Partindo dos dados contantes da vista “Dados para Sousa” (Figura 5).
Através deste script de SQL é possível “apagar” o conteúdo de um campo:
UPDATE “Data para Sousa” SET “Descrição Abreviada da Data” = NULL
WHERE “Data” = ‘2016.02.01’;
O resultado final está na Figura 6.
Related Topics
Carlos Pampulim Caldeira
Latest posts by Carlos Pampulim Caldeira (see all)
- Protocolo de Entrega de Trabalhos de IPAI - 21/01/2022
- Design e Tuning - 29/11/2021
- Fase 2 – Dicionário DDL - 25/10/2021