Página 1 de 1

Restringir Colunas

Enviado: Qui, 05 Nov 2015 6:41 am
por jeffecardoso
Bom dia,
Caros!

Estou com uma duvida e venho recorrer aos sábios.

Há possibilidade de restringir uma coluna para que apenas uma TRIGGER possa utilizar.

Ex. hipotético: Tenho uma tabela com 6 campos.

Selecionar tudo

create table dummy (
id number, -- coluna 1
dia varchar2(10), -- coluna 2
dt_criacao date, --  coluna 3
id_usario number, -- coluna 4
dt_atualizacao date, -- coluna 5
id_usuario number); --coluna 6
O usuário só pode realizar operação nas colunas 1 e 2, nas colunas que vai da 3 a 6 deverá ser restrito apenas para operações de uma Trigger.

Obs.: Há operação não é por sessão, será algo permanente na tabela.

É possível?

Deste já agradeço a todos, caso alguém puder me explicar essa duvida e se possível um exemplo da implementação, ficarei extremamente grato.

Re: Restringir Colunas

Enviado: Sex, 06 Nov 2015 8:46 am
por souldeath
A nível de coluna você pode dar grants de insert, update e references.
Tente dar os grants desse jeito:

Selecionar tudo

grant insert(campo1, campo2), update(campo3, campo4) on tabela to usuario
Referência: http://docs.oracle.com/cd/B19306_01/ser ... s_9013.htm

Re: Restringir Colunas

Enviado: Sex, 06 Nov 2015 2:32 pm
por tiago_pimenta
Via trigger na tabela eu acho que dá também, mas o melhor seria via grant mesmo, mas segue abaixo uma trigger que você pode dar uma olhada e modifica-lá para o seu caso.

Selecionar tudo

CREATE OR REPLACE TRIGGER TRG_TESTE_5
 BEFORE insert OR update of CAMPO01, CAMPO02, CAMPO03, CAMPO04, CAMPO05 on TABELAX 
 REFERENCING OLD AS OLD NEW AS NEW
 FOR EACH ROW