Ответ
В PostgreSQL управление пользователями и ролями — это часть настройки безопасности и доступа. Вот как я получаю эту информацию:
-
Основной запрос для просмотра пользователей/ролей:
SELECT usename AS role_name, usesuper AS is_superuser, usecreatedb AS can_create_db FROM pg_catalog.pg_user;Это показывает именно пользователей для входа.
-
Более полный запрос к системному каталогу
pg_roles: Он отображает все роли (которые могут быть как пользователями, так и группами).SELECT rolname, rolsuper, rolcreatedb, rolcanlogin FROM pg_roles WHERE rolcanlogin = true; -- чтобы показать только тех, кто может войти (пользователей) -
Практическое применение в DevOps: При настройке базы данных через скрипты инициализации (например, в
Dockerfileили в задачах конфигурации) я создаю пользователей и назначаю права так:-- Скрипт инициализации (init.sql) CREATE USER app_user WITH PASSWORD '${APP_DB_PASSWORD}'; GRANT CONNECT ON DATABASE my_app_db TO app_user; GRANT USAGE ON SCHEMA public TO app_user; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO app_user;Пароль при этом передается через переменные окружения и никогда не хранится в коде. Для проверки созданных пользователей после развертывания я использую запросы выше.