É possível monitorar a função e conceder/revogar privilégios usando gatilhos? Estou ciente de fazer isso usando as ferramentas de auditoria da Oracle, no entanto, é interessante se é possível fazer isso usando gatilhos.
relate perguntas
-
Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?
-
ORDER BY usando prioridades personalizadas para colunas de texto
-
Interface sqlplus confortável? [fechado]
-
Como encontrar as instruções SQL mais recentes no banco de dados?
-
Como posso consultar nomes usando expressões regulares?
Você poderia fazer isso com gatilhos DDL (
[before|after] grant
ourevoke
).Os documentos estão no Oracle® Database PL/SQL Language Reference . Você deve examinar cuidadosamente a tabela de funções de atributos de eventos e a seção Funções de atributos de eventos para acionadores de eventos do cliente para saber quais informações estão disponíveis nesses contextos.
Aqui está um gatilho de exemplo (provavelmente incompleto, este é apenas um exemplo) que registraria informações básicas sobre
grant
erevoke
eventos, assumindo umalog
tabela com colunas apropriadas:Exemplo:
Melhoria: Adicionado usuário de login, endereço IP. Isso mostrará quem deu concessão ou revogação.
Tabela de registro
Gatilho modificado
Observe que npriv é NULL para novos nomes de ação Oracle 12c GRANT INHERIT PRIVILEGES e REVOKE INHERIT PRIVILEGES, portanto, seu código deve incluir uma verificação para npriv is NOT NULL antes de FOR LOOP para evitar erros em ORA-06502: PL/SQL: numeric or value erro.
Exemplo:
se npriv não for nulo, então for i in 1..npriv loop ... ... end if;