51.8. pg_authid#

51.8. pg_authid

51.8. pg_authid

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

Поскольку этот каталог содержит пароли, он не должен быть доступен публично. pg_roles - это публично доступное представление pg_authid, которое заменяет поле пароля на пустое значение.

Глава 21 содержит подробную информацию о управлении пользователями и привилегиями.

Поскольку идентификаторы пользователей являются общими для всего кластера, структура pg_authid разделяется между всеми базами данных кластера: существует только одна копия pg_authid на весь кластер, а не по одной на каждую базу данных.

Таблица 51.8. pg_authid Колонки

Тип столбца

Описание

oid oid

Идентификатор строки

rolname name

Имя роли

rolsuper bool

Роль имеет привилегии суперпользователя

rolinherit bool

Роль автоматически наследует привилегии ролей, к которым она принадлежит

rolcreaterole bool

Роль может создавать другие роли

rolcreatedb bool

Роль может создавать базы данных

rolcanlogin bool

Роль может войти в систему. То есть, этой роли может быть назначен идентификатор начальной сессии.

rolreplication bool

Роль - это роль репликации. Роль репликации может инициировать соединения репликации и создавать и удалять слоты репликации.

rolbypassrls bool

Роль обходит каждую политику безопасности на уровне строк, см. Раздел 5.8 для получения дополнительной информации.

rolconnlimit int4

Для ролей, которые могут войти в систему, это устанавливает максимальное количество одновременных соединений, которое может установить данная роль. Значение -1 означает отсутствие ограничений.

rolpassword text

Пароль (возможно, зашифрованный); null, если отсутствует. Формат зависит от используемого метода шифрования.

rolvaliduntil timestamptz

Время истечения срока действия пароля (используется только для аутентификации по паролю); null, если срок действия не установлен


Для пароля, зашифрованного с помощью MD5, столбец rolpassword начнется со строки md5, за которой следует 32-символьный шестнадцатеричный хеш MD5. Хеш MD5 будет получен путем конкатенации пароля пользователя с их именем пользователя. Например, если у пользователя joe пароль xyzzy, Tantor SE сохранит md5-хеш от xyzzyjoe.

Если пароль зашифрован с использованием SCRAM-SHA-256, он имеет следующий формат:

SCRAM-SHA-256$<iteration count>:<salt>$<StoredKey>:<ServerKey>

где salt, StoredKey и ServerKey находятся в формате Base64. Этот формат совпадает с форматом, указанным в RFC 5803.

Пароль, не соответствующий ни одному из этих форматов, считается незашифрованным.