48.8. pg_authid

В каталоге pg_authid содержится информация об идентификаторах для авторизации (ролях). Роль включает в себя концепции "пользователей" и "групп". Пользователь по существу представляет собой частный случай роли, с флагом rolcanlogin. Любая роль (с или без флага rolcanlogin) может включать другие роли в качестве членов; см. pg_auth_members.

Так как в этом каталоге содержатся пароли, он не должен быть открыт для всех. Для общего пользования предназначено представление pg_roles на базе pg_authid, в котором поле пароля очищено.

За подробной информацией о пользователях и управлении правами обратитесь к Главе 20.

Так как пользователи определяются глобально, каталог pg_authid разделяется всеми базами данных кластера; есть только единственная копия pg_authid в кластере, а не отдельные в каждой базе данных.

Таблица 48-8. Колонки pg_authid

ИмяТипОписание
oid oid Идентификатор строки (скрытый атрибут; должен выбираться явно)
rolname name Имя роли
rolsuper bool Роли имеет права суперпользователя
rolinherit bool Роль автоматически наследует права ролей, в которые она включена
rolcreaterole bool Роль может создавать другие роли
rolcreatedb bool Роль может создавать базы данных
rolcatupdate bool Роль может напрямую модифицировать системные каталоги. (Это не разрешено даже суперпользователю, если данное поле не равно true)
rolcanlogin bool Роль может подключаться к серверу. То есть эта роль может быть указана в качестве начального идентификатора авторизации сеанса
rolreplication bool Роль является ролью репликации. То есть эта роль может запускать потоковую репликацию (см. Подраздел 25.2.5) и включать/отключать режим резервного копирования, вызывая функции pg_start_backup и pg_stop_backup
rolconnlimit int4 Для ролей, которые могут подключаться к серверу, это значение задаёт максимально разрешённое для этой роли число одновременных подключений. При значении -1 ограничения нет.
rolpassword text Пароль (возможно, зашифрованный) или NULL, если его нет. Если пароль зашифрован, это значение начинается со строки md5, за которой идёт 32-символьный шестнадцатеричный хеш MD5. Хеш MD5 вычисляется для пароля пользователя с добавленным за ним его именем. Например, если у пользователя joe пароль xyzzy, PostgreSQL сохранит в этом поле md5-хеш строки xyzzyjoe. Если пароль не соответствует этому формату, считается, что он не зашифрован.
rolvaliduntil timestamptz Срок действия пароля (используется только при аутентификации по паролю); NULL, если срок действия не ограничен