Главная » OpenSource базы данных » PostgreSQL » Настройка аутентификации клиентов в PostgreSQL — файл pg_hba.conf

📑 Настройка аутентификации клиентов в PostgreSQL — файл pg_hba.conf

В PostgreSQL клиентский доступ к базам данных на уровне хоста задается в файле pg_hba.conf (hba означает host-based authentication — аутентификацию на основе хоста.). Файл находится в хранится в директории кластера баз данных. Записи этого файла определяют: какиe узлы могут подключиться, метод аутентификации клиентов, какие имена пользователей PostgreSQL они могут использовать, к каким базам данных кластера они могут получить доступ. Записи могут быть следующих форм:

local DATABASE USER METHOD [OPTIONS]
host DATABASE USER ADDRESS METHOD [OPTIONS]
hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

Поля заглавными буквами должны быть заменены  актуальными значениями.

Значения полей:

  • local — запись будет соответствовать локальным подключениям, производимым через Unix-domain socket. Если записи такого типа нет, то подключения через Unix-domain socket будут запрещены.
  • host — запись соответсвует подключениям через TCP/IP. Запись host соответствует как SSL так и обычным подключениям. Здесь нужно обратить внимание на значение параметра listen_addresses — по умолчанию такие соединения будут ожидаться только с localhost. Для того чтобы подключения были возможны с других, удаленных хостов необходимо прописать соотвествующие адреса.
  • hostssl — запись соответствует только SSL подключениям через TCP/IP.
  • hostnossl — запись соответствует только не SSL (обычным) подключениям через TCP/IP.
  • DATABASE — определяет имена баз данных, доступ к которым описывает данная запись. Значениями могут быть:
    • собственно имя или имена баз данных кластера PostgreSQL, разделенные запятой;
    • @filename — имена баз данных хранятся во внешнем файле filename;
    • all — все базы данных кластера PostgreSQL;
    • sameuser — база данных с тем-же именем, что и пользователь в  поле USER;
    • samerole — база данных с тем-же именем, что и роль пользователя в поле USER;
    • replication — определяет, что запись будет соответствовать случаю подключения для репликации.
  • USER — имя или имена пользователей PostgreSQL, правила доступа для которых определяет данная запись. Значениями могут быть:
    • собственно имя или имена пользователей PostgreSQL, разделенные запятой;
    • all — все пользователи PostgreSQL;
    • @filename — имена пользователей хранятся во внешнем файле filename;
    • +группа — все пользователи, входящие в указанную группу/группы.
  • ADDRESS — Определяет адреса машины клиента, которым соответствует эта запись. Значениями могут быть:
    • all — любой адрес;
    • samehost — адрес самого сервера PostgreSQL;
    • samenetto — все адреса подсети в которой находится сервер;
    • имя или имена хостов, разделенные запятыми;
    • .hostname — суффикс имени хоста: .myhost.com — допустимы one.myhost.com, two.myhost.com и т.д. Но не myhost.com!!!
    • IP адрес или диапазон IP адресов в нотации CIDR (например 192.168.0.1/24).
  • METHOD — Определяет метод аутентификации, который будет использован. Подробно по методам аутентификации можно посмотреть здесь. Возможные значения коротко:
    • trust — Безусловно разрешает все подключения. Этот метод разрешает любому, кто может подключиться к серверу БД, зайти под любым пользователем PostgreSQL без необходимости предоставить пароль или использования какого-либо ещё способа аутентификации.
    • reject — Безусловно отклоняет подключение. Это полезно для «отфильтровывания» некоторых узлов из группы, например строка reject может запретить конкретному узлу подключение, тогда как следующая строка разрешает подключения для остальных узлов этой сети.
    • md5 — Требует от клиента предоставить md5 шифрованный пароль для аутентификации.
    • password — Требует от клиента предоставить незашифрованный пароль для аутентификации. Так как пароль посылается по сети в открытом виде, эта опция не должна использоваться для небезопасных сетей.
    • gss — Использует GSSAPI для аутентификации пользователя. Доступно только для TCP/IP подключений.
    • sspi — Использует SSPI для аутентификации пользователя. Доступно только для Windows.
    • krb5 — Использует Kreberos V5 для аутентификации пользователя. Доступно только для TCP/IP подключений.
    • ident — Получает имя пользователя ОС клиента, соединяясь с сервером ident на клиенте и проверяет, соответствует ли оно имени пользователя для запрашиваемой БД. Аутентификация ident может использоваться только на TCP/IP соединениях. Когда это значение используется для локальных соединений, то вместо этого используется peer аутентификация.
    • peer — Получает имя пользователя ОС из самой ОС и проверяет, соответствует ли оно имени пользователя для запрашиваемой БД. Доступно только для локальных подключений.
    • ldap — Аутентификация при помощи сервера LDAP.
    • radius — Аутентификация при помощи сервера RADIUS.
    • cert — Аутентификация при помощи SSL сертификата клиента.
    • pam — Аутентификация при помощи Pluggable Authentication Modules (PAM), предоставляемыми ОC.

Файл pg_hba.conf поставляемый по-умолчанию выглядит примерно так:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            scram-sha-256
host    replication     all             ::1/128                 scram-sha-256
При перепечатке просьба вставлять активные ссылки на oslogic.ru
Copyright oslogic.ru © 2024 . All Rights Reserved.