Se você estiver usando uma versão moderna do banco de dados (9i ou posterior) e tiver uma licença do Enterprise Edition, poderá usar a Auditoria de granulação fina. Permite auditar as consultas dos usuários com um nível de granularidade muito baixo, por meio de políticas definidas.
Para capturar o texto SQL e as variáveis de ligação, você precisará definir o parâmetro AUDIT_TRAIL adequadamente ao adicionar uma política FGA. Descubra mais.
"Estou usando um padrão 11g, portanto, as funções de auditoria não são suportadas."
Não exatamente. O comando AUDIT faz parte da compilação padrão do Oracle, mas só nos permite capturar quando um determinado usuário emite um SELECT em uma determinada tabela. Mas, sim, para descobrir exatamente o que eles estão selecionando requer licença Enterprise Edition.
Também não há gatilho ON SELECT, então não podemos rolar o nosso próprio.
"Então, posso usar o comando AUDIT na edição padrão? ... Mas então um consultor me disse que não posso usá-lo sem pagar a licença empresarial?"
Falando como consultor, devo dizer que esses caras nem sempre sabem do que estão falando.
Então vamos ser claros:
- o comando AUDIT faz parte do Oracle SQL. É utilizável com a Edição Standard. Na verdade, desde o 11g, ele está ativado por padrão. Ele audita a atividade geral. Descubra mais.
- A Auditoria Refinada é um pacote PL/SQL que só pode ser usado se você tiver a Enterprise Edition. Ele nos permite auditar a atividade do usuário em um nível muito baixo. Saiba mais.