53.8. pg_authid
#
В каталоге pg_authid
содержится информация об идентификаторах для авторизации (ролях). Роль включает в себя концепции «пользователей» и «групп». Пользователь по существу представляет собой частный случай роли, с флагом rolcanlogin
. Любая роль (с или без флага rolcanlogin
) может включать другие роли в качестве членов; см. pg_auth_members
.
Так как в этом каталоге содержатся пароли, он не должен быть открыт для всех. Для общего пользования предназначено представление pg_roles
на базе pg_authid
, в котором поле пароля очищено.
За подробной информацией о пользователях и управлении правами обратитесь к Главе 22.
Так как пользователи определяются глобально, каталог pg_authid
разделяется всеми базами данных кластера; есть только единственная копия pg_authid
в кластере, а не отдельные в каждой базе данных.
Таблица 53.8. Столбцы pg_authid
Тип столбца Описание |
---|
Идентификатор строки |
Имя роли |
Роли имеет права суперпользователя |
Роль автоматически наследует права ролей, в которые она включена |
Роль может создавать другие роли |
Роль может создавать базы данных |
Роль может подключаться к серверу. То есть эта роль может быть указана в качестве начального идентификатора авторизации сеанса. |
Роль является ролью репликации. Такие роли могут устанавливать соединения для репликации и создавать/удалять слоты репликации. |
Роль не подчиняется никаким политикам защиты на уровне строк; за подробностями обратитесь к Разделу 5.8. |
Для ролей, которые могут подключаться к серверу, это значение задаёт максимально разрешённое для этой роли число одновременных подключений. При значении -1 ограничения нет. |
Пароль (возможно зашифрованный); NULL, если он не задан. Его формат зависит от используемого вида шифрования. |
Срок действия пароля (используется только при аутентификации по паролю); NULL, если срок действия не ограничен |
Если пароль зашифрован MD5, значение в rolpassword
начинается со строки md5
, за которой идёт 32-символьный шестнадцатеричный хеш MD5. Этот хеш вычисляется для пароля пользователя с добавленным за ним его именем. Например, если у пользователя joe
пароль xyzzy
, PostgreSQL сохранит в этом поле md5-хеш строки xyzzyjoe
.
Если пароль зашифрован по алгоритму SCRAM-SHA-256, он имеет формат:
SCRAM-SHA-256$<число итераций>
:<соль>
$<СохранённыйКлюч>
:<КлючСервера>
Здесь соль
, СохранённыйКлюч
и КлючСервера
кодируются в формате Base64. Этот формат соответствует стандарту RFC 5803.
Пароль, не удовлетворяющий ни одному из этих форматов, считается незашифрованным.