Перейти к основному содержимому

pg_authid

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

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

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

Таблица 53.8 Столбцы pg_authid

СтолбецТип данныхОписание
oidoidИдентификатор строки
rolnamenameимя роли
rolsuperboolRole имеет привилегии суперпользователя
rolinheritboolRole автоматически наследует привилегии ролей, членом которых он является
rolcreateroleboolРоли могут создавать больше ролей
rolcreatedbboolRole может создавать базы данных
rolcanloginboolRole может войти в систему. То есть эту роль можно задать в качестве первоначального идентификатора авторизации сеанса
rolreplicationboolRole - роль репликации. Роль репликации может инициировать соединения репликации и создавать и удалять слоты репликации
rolbypassrlsboolRole обходит все политики безопасности на уровне строк, см. Раздел 5.8 для получения дополнительной информации
rolconnlimitint4Для ролей, которые могут войти в систему, это устанавливает максимальное количество одновременных подключений, которые может сделать эта роль. -1 означает отсутствие лимита
rolpasswordtextПароль (возможно, зашифрованный); нулевой, если нет. Формат зависит от используемой формы шифрования
rolvaliduntiltimestamptzВремя истечения срока действия пароля (используется только для аутентификации пароля); нулевое, если срок действия не истекает

Для зашифрованного пароля 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.

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