pg_authid
Эта страница переведена при помощи нейросети GigaChat.
Каталог pg_authid
содержит информацию об идентификаторах авторизации базы данных (роли). Роли включают понятия «пользователи» и «группы». Пользователь – это просто роль с установленным флагом rolcanlogin
. Любая роль (с или без rolcanlogin
) может иметь другие роли в качестве членов; см. pg_auth_members.
Поскольку этот каталог содержит пароли, он не должен быть общедоступным. pg_roles
— это общедоступное представление в pg_authid
, которое опустошает поле пароля.
Раздел «Роли базы данных» содержит подробную информацию об управлении пользователями и привилегиями
Поскольку идентификаторы пользователей являются общекластерными, pg_authid
распространяется на все базы данных кластера: на каждый кластер приходится только одна копия pg_authid
, а не на каждую базу данных.
Столбцы pg_authid
:
Столбец | Тип данных | Описание |
---|---|---|
oid | oid | Идентификатор строки |
rolname | name | имя роли |
rolsuper | bool | Роль имеют привилегии суперпользователя |
rolinherit | bool | Роль автоматически наследует привилегии ролей, членом которых он является |
rolcreaterole | bool | Роль могут создавать другие ролей |
rolcreatedb | bool | Роль может создавать базы данных |
rolcanlogin | bool | Роль может войти в систему. То есть эту роль можно задать в качестве первоначального идентификатора авторизации сеанса |
rolreplication | bool | Эта роль – роль репликации. Роль репликации может инициировать соединения репликации и создавать и удалять слоты репликации |
rolbypassrls | bool | Роль обходит все политики безопасности на уровне строк, (см. Раздел «Политики защиты строк» для получения дополнительной информации) |
rolconnlimit | int4 | Для ролей, которые могут войти в систему, это устанавливает максимальное количество одновременных подключений, которые может сделать эта роль. Значение -1 означает отсутствие лимита |
rolpassword | text | Пароль (возможно, засекреченный). Если NULL , значит его нет. Формат зависит от используемой формы засекречивания |
rolvaliduntil | timestamptz | Время истечения срока действия пароля (используется только для аутентификации пароля). NULL , если срок действия не истекает |
Для засекреченного пароля MD5 столбец rolpassword
будет начинаться со строки md5
, за которой следует 32-значный шестнадцатеричный хеш MD5. Хеш MD5 будет представлять собой пароль пользователя, связанный с его именем пользователя. Например, если у пользователя joe
есть пароль xyzzy
, PostgreSQL сохранит хеш MD5 xyzzyjoe
.
Если пароль засекречен с помощью SCRAM-SHA-256, он имеет формат:
SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>
Где salt
, StoredKey
и ServerKey
находятся в формате с кодировкой Base64. Этот формат идентичен формату, указанному в RFC 5803.
Предполагается, что пароль, который не соответствует ни одному из этих форматов, не засекречен.