No tengo acceso a una instalación de Postgres, por lo que no puedo verificarlo.
Soy un tipo de seguridad y veo contraseñas de texto sin formato en los registros:
create user user1 with password 'PLAINTEXT PASSWORD'
¿Cómo pueden los DBA cambiar o crear sus contraseñas sin la contraseña en claro en los registros?
He visto esto , que indica que puede usar un hash md5 de la contraseña, pero luego el hash también está claro. ¿Hay una mejor manera?
postgresql
postgresql-9.3
logs
password
Schroeder
fuente
fuente
\password
comando depsql
.Respuestas:
Parece que
log_statement
está configurado enall
.Si desea evitar que aparezcan contraseñas en los registros mientras
log_statement
está configurado en un valor que capturaALTER USER
/ALTER ROLE
entonces querrá anular eso al cambiar las contraseñas. p.ejDebes ser un superusuario para hacer esto. Los usuarios normales no pueden anular las reglas de registro.
Sería bueno si PostgreSQL apoyado marcar algunos parámetros a los estados (o funciones) como incluso los usuarios sensibles a la seguridad y permita solicitar que estar enmascarados en leños,
pg_stat_statements
,pg_stat_activity
, etc. No hay actualmente ninguna de esas características - pero bueno, son parches bienvenidos. Si está realmente interesado, publique en pgsql-hackers antes de escribir cualquier código real para que pueda obtener consejos y comentarios. Alternativamente, hable con alguien que haga contratos de desarrollo.En general, PostgreSQL espera que trates los registros como confidenciales.
Hay otras áreas donde el registro es un problema de seguridad grave. Por ejemplo, algunas de las
pgcrypto
funciones toman claves criptográficas como parámetros.fuente
La respuesta actualmente aceptada no funcionó para mí en Postgres 9.4, para evitar que la contraseña de texto sin formato aparezca en los registros.
En cambio, lo que funcionó para mí fue generar el hash de contraseña localmente:
Luego insertando eso:
(Nota de seguridad: dependiendo de dónde genere lo anterior, es posible que desee evitar que su shell inicie sesión en su historial, o en un sistema compartido, puede usar una utilidad * nix que solicitará la contraseña en lugar de incluirla en el comando. Por casualidad no estaba en un sistema compartido, así que eso no fue una preocupación para mí.)
fuente