sql >> Base de Datos >  >> RDS >> PostgreSQL

Sistema de inicio de sesión usando usuarios físicos de postgres, no usuarios lógicos

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).