У меня база данных PostgreSQL и наш внутренний инструмент уязвимостей жалуются на Default Unpassworded Account
. Проблема в том, что я не могу понять, для какой учетной записи был разблокирован пароль. Я создал несколько учетных записей, но у всех есть пароли. postgres
учетная запись тоже имеет пароль.
Когда я выполняю: psql template1 -c '\du'
Я получил следующий результат:
List of roles
Role name | Attributes | Member of
--------------+------------------------------------------------+-----------
account1 | Superuser, Create role, Create DB | {}
account2 | | {}
postgres | Superuser, Create role, Create DB, Replication | {}
account3 | Password valid until infinity | {}
account4 | Password valid until infinity | {}
Любые советы, как решить эту проблему? Спасибо.
Хорошо, похоже, я нашел решение благодаря этой теме SO: https://stackoverflow.com/questions/23641823/check-if-a-role-in-postgresql-has-a-password-set
Когда я выпустил select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valuntil | useconfig
--------------+----------+-------------+----------+-----------+---------+-------------------------------------+----------+-----------
postgres | 16384 | f | f | f | f | | infinity |
account1 | 17513 | f | f | f | f | | infinity |
account2 | 17679 | f | f | f | f | 11111111111111111111111111111111111 | |
account3 | 10 | t | t | t | t | 11111111111111111111111111111111111 | |
account4 | 16385 | t | t | t | f | 11111111111111111111111111111111111 | |
(5 rows)
Итак, роли postgres
и account1
действительно не было паролей.
Обновленные пароли для этих учетных записей: ALTER ROLE postgres WITH PASSWORD 'mysuperstrongpasswordhere';
И похоже, сейчас все ок.