Restringir Colunas

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
jeffecardoso
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qua, 27 Mai 2015 11:26 pm

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.
souldeath
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qua, 25 Ago 2010 9:39 am
Localização: Limeira

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
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

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  
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes