Иллюстрированный самоучитель по PostgreSQL

Аутентификация и шифрование

Ниже перечислены компоненты записей pg_hba.conf, упоминаемые в листинге 8.5.

  • база_данных. Имя базы данных, к которой разрешено подключаться заданному хосту. Возможны три варианта:
    • ключевое слово all означает, что клиент может подключиться к любой базе данных, обслуживаемой сервером PostgreSQL;
    • ключевое слово sameuser означает, что клиент может подключаться только к базе данных, имя которой совпадает с именем аутентифицированного пользователя;
    • если в записи указывается конкретное имя базы данных, клиент сможет подключиться только к этой базе.
  • ip_adpec, сетевая_маска. Поля ip_adpec и сетевая_маска определяют либо конкретный IP-адрес, либо интервал IP-адресов, которым разрешено подключение к серверу PostgreSQL. Интервал задается в виде сетевой маски, описывающей IP-сеть. При указании отдельного IP-адреса поле сетевой маски должно быть равно 255.255.255.255.

    Примечание
    За информацией о сетевых масках обращайтесь на сайт Linux Networking HOWTO
    (http://www.thelinuxreview.com/howto/networking) или к системному администратору.

  • метод_аутентификации. Метод аутентификации, который должен использоваться сервером при подключении пользователя к PostgreSQL. Ниже перечислены допустимые значения этого поля.
    • trust. Хост объявляется доверенным, то есть любой пользователь с него подключается к базе данных PostgreSQL без пароля. Таким образом, вы автоматически доверяете всем пользователям хоста. Естественно, это весьма рискованный метод, если заданный хост недостаточно хорошо защищен или предоставляет доступ посторонним пользователям.
    • reject. Доступ к PostgreSQL для соответствующего хоста/пользователя автоматически отклоняется. Такая настройка подходит лишь в том случае, если хост заведомо не должен получать доступ к серверу PostgreSQL.
    • password. Для получения доступа пользователь должен ввести пароль, который совпадает с паролем, хранящимся в глобальной системной таблице pg_shadow с именем этого пользователя. Пароль пересылается в текстовом виде.
    • crypt. Этот метод аналогичен методу password, но в нем пароль пересылается не в простом текстовом виде, а с применением простой схемы шифрования, которая не обеспечивает надежной защиты, но это все же лучше, чем простая пересылка пароля в текстовом виде, как в методе password.
    • krb4, krb5. Используется система аутентификации Kerberos версий 4 и 5. Вопросы установки и настройки Kerberos выходят за рамки темы книги, но если вы захотите организовать аутентификацию с использованием Kerberos, такой вариант существует.
    • ident. При запросе на подключение от хоста с IP-адресом, заданным в файле pg_hba.conf, должна применяться карта идентификации. У метода имеется один обязательный параметр, значением которого является либо специальное ключевое слово sameuser, либо имя карты, определенной в файле pgjdent.conf. Дополнительная информация о картах идентификации приведена в пункте "Файл pg_ident.conf".
  • параметр. Поле параметра может быть обязательным или необязательным в зависимости от выбранного метода аутентификации. В PostgreSQL 7.1.x оно обязательно только для метода Ident.

Внимание
Методы password и crypt рекомендуется использовать лишь в сочетании с внешним механизмом шифрования. Информация о применении единого механизма шифрования для всего трафика PostgreSQL приведена в разделе "Шифрование сеанса"
.

Примеры записей в файле pg_hba.conf

В этом разделе приведены некоторые примеры записей в файле pg_hba.conf.

Запись, приведенная в листинге 8.6, разрешает подключиться к любой (all) базе данных без пароля (trust) всем пользователям хоста с IP-адресом 192.168.1.10.

Листинг 8.6. Один доверенный хост.

host all 192.168.1.10 255.255.255.255 trust

Следующая запись (листинг 8.7) запрещает подключение всем пользователям с IP-адреса 192.168.1.10. Для этого в режиме аутентификации reject вместо базы данных указывается ключевое слово all.

Листинг 8.7. Запрет доступа с одного хоста.

host all 192.168.1.10 255.255.255.255 reject

Следующая запись (листинг 8.8) разрешает подключение к базе данных templatel с хоста 192.168.1.10 любому пользователю, указавшему правильный пароль. Режим crypt обеспечивает шифрование пароля в процессе аутентификации.

Листинг 8.8. Один хост, одна база данных.

host templatel 192.168.1.10 255.255.255.255 crypt
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.