Para lograr su objetivo
puedes crear:
1) Dos esquemas:uno para tablas comunes, otro para elementos de seguridad como tabla de inicio de sesión/contraseña (hash), registro de sesión de usuario, tabla de registro de cambios, etc.
2) Dos usuarios:un usuario común, que solo puede usar dml en un esquema común (sin ddl), un superusuario.
3) Función de inicio de sesión que comparará el usuario/contraseña proporcionado con la tabla de inicio/contraseña y registrará los intentos exitosos/fallidos en el registro de sesión del usuario (necesita SECURITY DEFINER
función)
4) Conjunto de activadores de auditoría en tablas de esquemas comunes que verificarán los privilegios del usuario y registrarán cualquier cambio realizado por el usuario (SECURITY DEFINER
funciona aquí también).