×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.5.2. Таблицы соответствия имен пользователей

При использовании внешней системы аутентификации, такой как Ident или GSSAPI, имя пользователя операционной системы, инициировавшего соединение, может отличаться от имени пользователя базы данных (роли), которое должно быть использовано. В этом случае для сопоставления имени пользователя операционной системы с именем пользователя базы данных можно применить карту соответствия имен. Для использования сопоставления имен пользователей укажите map=имя-карты в поле параметров в файле pg_hba.conf. Данный параметр поддерживается для всех методов аутентификации, использующих внешние имена пользователей. Поскольку для различных соединений могут потребоваться разные сопоставления, название используемой карты указывается в имя-карты параметре в файле pg_hba.conf для определения карты, используемой для каждого конкретного соединения.

Соответствия имен пользователей определяются в файле соответствия ident, который по умолчанию имеет имя pg_ident.conf и хранится в каталоге данных кластера. (Тем не менее, файл таблицы соответствий можно разместить и в другом месте; см. ident_file параметр конфигурации.) Файл соответствия ident содержит строки следующего общего формата:

имя-карты имя-пользователя-системы database-username
include файл
include_if_exists файл
include_dir каталог

Комментарии, пробелы и переносы строк обрабатываются так же, как в pg_hba.conf. Параметр имя-карты — это произвольное имя, которое будет использоваться для ссылки на данное сопоставление в pg_hba.conf. Два других поля определяют имя пользователя операционной системы и соответствующее имя пользователя базы данных. Одно и то же значение имя-карты может использоваться многократно для определения нескольких сопоставлений пользователей в рамках одной таблицы соответствий.

Как и в случае с pg_hba.conf, строки в данном файле могут представлять собой директивы включения include, составленные по тем же правилам.

Файл pg_ident.conf данный файл считывается при запуске, а также в тех случаях, когда основной процесс сервера получает SIGHUP сигнал. Если файл редактируется в работающей системе, необходимо отправить сигнал процессу postmaster (используя команду pg_ctl reload, вызывая SQL-функцию pg_reload_conf()или используя kill -HUP) для повторного чтения файла системой.

Системное представление pg_ident_file_mappings может быть полезно для предварительной проверки изменений в файле pg_ident.conf или для диагностики проблем, если загрузка файла не дала ожидаемого результата. Строки в представлении с ненулевыми error полями указывают на наличие ошибок в соответствующих строках файла.

Не существует ограничений относительно того, скольким пользователям базы данных может соответствовать конкретный пользователь операционной системы, и наоборот. Таким образом, записи в карте соответствий следует рассматривать как означающие следующее: «данному пользователю операционной системы разрешено подключаться в качестве этого пользователя базы данных», а не как указание на их эквивалентность. Соединение будет разрешено, если в карте соответствий существует какая-либо запись, связывающая имя пользователя, полученное из внешней системы аутентификации, с именем пользователя базы данных, под которым пользователь запросил подключение. Значение all может использоваться в качестве database-username для указания того, что если имя-пользователя-системы совпадает, то данному пользователю разрешено входить в систему под именем любого из существующих пользователей базы данных. Заключение в кавычки all лишает ключевое слово его специального значения.

Если параметр database-username начинается с символа + , то пользователь операционной системы может войти в систему под именем любого пользователя, принадлежащего к этой роли, аналогично тому, как имена пользователей, начинающиеся с + обрабатываются в pg_hba.conf. Таким образом, параметр + символ означает «соответствие любой из ролей, которые прямо или косвенно являются членами данной роли», в то время как имя без данного + символа соответствует только этой конкретной роли. Заключение в кавычки имени пользователя, начинающегося с символа + приводит к тому, что + теряет свое специальное значение.

Если параметр имя-пользователя-системы начинается с косой черты (/), оставшаяся часть поля обрабатывается как регулярное выражение. (Подробнее см. Раздел 2.6.7.3.1 относительно синтаксиса регулярных выражений Digital Q.DataBase) Регулярное выражение может содержать одну группу захвата или подвыражение в скобках, на которое затем можно сослаться в поле database-username как \1 (обратная косая черта и единица). Это позволяет сопоставлять несколько имен пользователей в одной строке, что особенно полезно для простых синтаксических подстановок. Например, следующие записи

mymap   /^(.*)@mydomain\.com$      \1
mymap   /^(.*)@otherdomain\.com$   guest

удаляет доменную часть для пользователей, чьи системные имена заканчиваются на @mydomain.com, и позволяет любому пользователю, системное имя которого заканчивается на @otherdomain.com входить в систему как guest. Заключение в кавычки значения, database-username содержащего \1 не означает, что оно будет трактоваться как регулярное выражение \1 теряет свое специальное значение.

Если параметр database-username поле начинается с косой черты (/), остальная часть поля рассматривается как регулярное выражение (подробнее о Раздел 2.6.7.3.1 см. в описании Digital Q.DataBaseсинтаксис регулярных выражений). Использование \1 использовать результаты захвата из регулярного выражения в имя-пользователя-системы для регулярного выражения в database-username.

Подсказка

Следует учитывать, что по умолчанию регулярное выражение может соответствовать только части строки. Как правило, целесообразно использовать ^ и $, как показано в примере выше, чтобы обеспечить сопоставление с полным именем пользователя операционной системы.

Файл pg_ident.conf файл, который может использоваться совместно с pg_hba.conf файлом в Пример 3.5.1 показан в Пример 3.5.2. В данном примере любому пользователю, вошедшему в систему на компьютере в сети 192.168, чье имя пользователя операционной системы не bryanh, ann, или robert не будет предоставлен доступ. Пользователю Unix robert получит доступ только при попытке подключения в качестве Digital Q.DataBase пользователя bob, а не в качестве robert или кого-либо другого. ann будет разрешено подключаться только в качестве ann. Пользователь bryanh будет разрешено подключение bryanh либо под именем guest1.

Пример 3.5.2. Пример pg_ident.conf Файл

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME

omicron         bryanh                  bryanh
omicron         ann                     ann
# пользователь bob имеет имя robert на этих машинах
omicron         robert                  bob
# bryanh также может подключаться как guest1
omicron         bryanh                  guest1

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению