Ehhhh, vida bandida. Sempre caímos em velhos dilemas.
Mais uma para não esquecer.
Em sistemas concorrentes, quando há algumas tabelas compartilhadas (também conhecidas como tabelas corporativas), não é raro um dos sistemas precisar efetuar uma atualização somente em uma coluna (geralmente por questões de segurança ou auditoria).
Segue um exemplo do grant.
SQL> desc t1; Nome Nulo? Tipo -------------- -------- ------ C1 NUMBER C2 NUMBER C3 NUMBER SQL>
Digamos que o usuário TAMTAM terá acesso irrestrito a tabela e o usuário TAMBEM terá privilégio de SELECT e UPDATE na coluna C2.
SQL> grant all on t1 to TAMTAM; Concessao bem-sucedida SQL> grant select on t1 to TAMBEM; Concessao bem-sucedida SQL> grant update (c2) on t1 to TAMBEM; Concessao bem-sucedida
Agora um pequeno exemplo de como essas permissões funcionam, usando os usuários TAMBAM e TAMBEM.
SQL> conn tamtam/tamtam Connected. SQL> select * from t1; no rows selected SQL> insert into t1 values (1,1,1); 1 row created. SQL> commit; Commit complete. SQL> select * from t1; C1 C2 C3 ---------- ---------- ---------- 1 1 1 SQL> conn tambem/tambem Connected. SQL> select * from t1; C1 C2 C3 ---------- ---------- ---------- 1 1 1 SQL> insert into t1 values (2,2,2); insert into t1 values (2,2,2) * ERROR at line 1: ORA-01031: insufficient privileges SQL> update t1 set c1=2; update t1 set c1=2 * ERROR at line 1: ORA-01031: insufficient privileges SQL> update t1 set c2=2; 1 row updated. SQL> commit; Commit complete. SQL> select * from t1; C1 C2 C3 ---------- ---------- ---------- 1 2 1 SQL>
Como demonstrado, o usuário TAMTAM tem acesso irrestrito a tabela e o usuário TAMBEM, permissão de SELECT e UPDATE somente na coluna C2 na mesma tabela.
Pós-graduação em Computação Forense e Perícia Digital, pós-graduação em Redes de Computadores e com graduação em Tecnologia em Processamento de Dados.