Para atingir seu objetivo
você pode criar:
1) Dois esquemas:um para tabelas comuns, outro para segurança como tabela de login/pass(hash), log de sessão do usuário, tabela de log de alterações, etc.
2) Dois usuários:um usuário comum, que só pode usar dml no esquema comum (sem ddl), um superusuário.
3) Função de login que verificará o usuário/senha fornecido em relação à tabela de login/senha e registrará tentativas bem-sucedidas/falhas no log de sessão do usuário (você precisa do
SECURITY DEFINER
função) 4) Conjunto de gatilhos de auditoria em tabelas de esquema comuns que verificarão os privilégios do usuário e registrarão quaisquer alterações feitas pelo usuário (
SECURITY DEFINER
funções aqui também).