Privilégios a nível da coluna em Oracle

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.

Privilégios a nível da coluna em Oracle

Figura 1: A tabela Data.

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).

Privilégios a nível da coluna em Oracle

Figura 2: A View “Data para Sousa”.

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).

Privilégios a nível da coluna em Oracle

Figura 3: Atribuir a sousa o privilégio SELECT sobre a view “Data para Sousa”.

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).

Privilégios a nível da coluna em Oracle

Figura 4: Autorização para modificar.

Partindo dos dados contantes da vista “Dados para Sousa” (Figura 5).

Privilégios a nível da coluna em Oracle

Figura 5: Dados da vista “Dados para Sousa”.

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.

Privilégios a nível da coluna em Oracle

Figura 6: Resultado de um “DELETE” a nível de campo.

 

The following two tabs change content below.

Carlos Pampulim Caldeira

Professor Auxiliar | Assistant Professor at Universidade de Évora

Latest posts by Carlos Pampulim Caldeira (see all)