55.8. pg_authid #
В каталоге pg_authid содержится информация об идентификаторах для авторизации (ролях). Роль включает в себя концепции «пользователей» и «групп». Пользователь по существу представляет собой частный случай роли, с флагом rolcanlogin. Любая роль (с или без флага rolcanlogin) может включать другие роли в качестве членов; см. pg_auth_members.
Так как в этом каталоге содержатся пароли, он не должен быть открыт для всех. Для общего пользования предназначено представление pg_roles на базе pg_authid, в котором поле пароля очищено.
За подробной информацией о пользователях и управлении правами обратитесь к Главе 21.
Так как пользователи определяются глобально, каталог pg_authid разделяется всеми базами данных кластера; есть только единственная копия pg_authid в кластере, а не отдельные в каждой базе данных.
Таблица 55.8. Столбцы pg_authid
Тип столбца Описание |
|---|
Идентификатор строки |
Имя роли |
Роли имеет права суперпользователя |
Роль автоматически наследует права ролей, в которые она включена |
Роль может создавать другие роли |
Роль может создавать базы данных |
Роль может подключаться к серверу. То есть эта роль может быть указана в качестве начального идентификатора авторизации сеанса. |
Роль является ролью репликации. Такие роли могут устанавливать соединения для репликации и создавать/удалять слоты репликации. |
Роль не подчиняется никаким политикам защиты на уровне строк; за подробностями обратитесь к Разделу 5.9. |
Для ролей, которые могут подключаться к серверу, это значение задаёт максимально разрешённое для этой роли число одновременных подключений. При значении -1 ограничения нет. |
OID профиля пользователя |
Число следующих подряд неудачных попыток входа пользователя. Это число равно |
Время последнего подключения пользователя роли. Значение не обновляется, если параметр |
Время первой неудачной попытки подключения пользователя роли. Принимает значение |
Состояние роли: |
Зашифрованный пароль; NULL, если он не задан. Его формат зависит от используемого вида шифрования. |
Срок действия пароля (используется только при аутентификации по паролю); NULL, если срок действия не ограничен |
Время установления текущего пароля (используется только при аутентификации по паролю); null, если пароль не установлен. |
Если пароль зашифрован MD5, значение в rolpassword начинается со строки md5, за которой идёт 32-символьный шестнадцатеричный хеш MD5. Этот хеш вычисляется для пароля пользователя с добавленным за ним его именем. Например, если у пользователя joe пароль xyzzy, Postgres Pro сохранит в этом поле md5-хеш строки xyzzyjoe.
Если пароль зашифрован по алгоритму SCRAM-SHA-256, он имеет формат:
SCRAM-SHA-256$<число итераций>:<соль>$<СохранённыйКлюч>:<КлючСервера>
Здесь соль, СохранённыйКлюч и КлючСервера кодируются в формате Base64. Этот формат соответствует стандарту RFC 5803.
55.8. pg_authid #
The catalog pg_authid contains information about database authorization identifiers (roles). A role subsumes the concepts of “users” and “groups”. A user is essentially just a role with the rolcanlogin flag set. Any role (with or without rolcanlogin) can have other roles as members; see pg_auth_members.
Since this catalog contains passwords, it must not be publicly readable. pg_roles is a publicly readable view on pg_authid that blanks out the password field.
Chapter 21 contains detailed information about user and privilege management.
Because user identities are cluster-wide, pg_authid is shared across all databases of a cluster: there is only one copy of pg_authid per cluster, not one per database.
Table 55.8. pg_authid Columns
Column Type Description |
|---|
Row identifier |
Role name |
Role has superuser privileges |
Role automatically inherits privileges of roles it is a member of |
Role can create more roles |
Role can create databases |
Role can log in. That is, this role can be given as the initial session authorization identifier. |
Role is a replication role. A replication role can initiate replication connections and create and drop replication slots. |
Role bypasses every row-level security policy, see Section 5.9 for more information. |
For roles that can log in, this sets maximum number of concurrent connections this role can make. -1 means no limit. |
The OID of the role's profile |
Number of consecutive failed login attempts of a user. It is always |
The timestamp the role logged in last time. It is not updated if the |
The timestamp of the role's first authentication failure. It is |
Status of the role: |
Encrypted password; null if none. The format depends on the form of encryption used. |
Password expiry time (only used for password authentication); null if no expiration |
Password set time (only used for password authentication); null if password is not set. |
For an MD5 encrypted password, rolpassword column will begin with the string md5 followed by a 32-character hexadecimal MD5 hash. The MD5 hash will be of the user's password concatenated to their user name. For example, if user joe has password xyzzy, Postgres Pro will store the md5 hash of xyzzyjoe.
If the password is encrypted with SCRAM-SHA-256, it has the format:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
where salt, StoredKey and ServerKey are in Base64 encoded format. This format is the same as that specified by RFC 5803.