Parece que log_statement
está definido como all
.
Se você deseja impedir que as senhas apareçam nos logs enquanto log_statement
estiver definido como um valor que captura ALTER USER
/ ALTER ROLE
, você deverá substituí-lo ao alterar senhas. por exemplo
BEGIN;
SET LOCAL log_statement = 'none';
ALTER USER ... SET PASSWORD ...;
COMMIT;
Você deve ser um superusuário para fazer isso. Usuários normais não podem substituir regras de log.
Seria bom se PostgreSQL suportado sinalizar alguns parâmetros para declarações (ou até mesmo funções) como usuários sensíveis à segurança e permissão para solicitar que eles sejam mascarados em toras, pg_stat_statements
, pg_stat_activity
, etc. Não existe actualmente qualquer recurso - mas hey, patches são bem-vinda. Se você está realmente interessado, publique no pgsql-hackers antes de escrever qualquer código real, para que você possa obter conselhos e comentários. Como alternativa, fale com alguém que contrata o desenvolvimento.
Em geral, o PostgreSQL espera que você trate os logs como confidenciais.
Há outras áreas em que o log é uma séria preocupação de segurança. Por exemplo, algumas das pgcrypto
funções usam chaves criptográficas como parâmetros.
\password
comando depsql
.