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
Como demonstrado, o usuário TAMTAM tem acesso irrestrito a tabela e o usuário TAMBEM, permissão de SELECT e UPDATE na coluna C2.
--
Marcos Aurélio Braga
OCA - Oracle Database 10g Administrator