Atualmente estou trabalhando na implementação de uma segurança de 2 camadas, o que significa que temos filtragem de consulta orm em nosso código de aplicativo, bem como em nosso banco de dados. No banco de dados estou usando o Postgre Row Level Security.
Em um mundo ideal, todas as consultas de filtragem criadas no código do aplicativo são perfeitas e as políticas de segurança em nível de linha nunca removem entradas. No entanto, se acontecer de filtrar um resultado, isso significa que temos um erro em nossa filtragem no código do aplicativo que deve ser corrigido. Eu gostaria de poder registrar isso.
É possível configurar o Postgresql para que eu possa ser notificado/registrar essas ocorrências?
Você pode usar uma função em sua política que tenha o efeito colateral de registrar dados. Mas isso não é confiável, porque pode ser que a condição RLS seja aplicada antes de alguma outra condição de consulta, para que você obtenha falsos positivos que não teriam se tornado parte do conjunto de resultados de qualquer maneira.
Eu não acho que há uma maneira de fazer o que você quer. Esse não é o trabalho do RLS: ele torna algumas linhas invisíveis para um usuário, para que ninguém possa ver os dados que não deveriam.