4.6.1.2.3.1. Настройка СУБД

 
Для настройки СУБД выполните следующие действия:
 
1. Войдите под пользователем root, выполнив следующую команду и введите пароль администратора:
su -
 
 
2. Откройте файл "postgresql.conf", выполнив команду:
sudo nano /var/lib/pgsql/1X/data/postgresql.conf
 
 
3. Расскоментируйте строку "port = 5432":
 
 
Для сохранения и выхода нажмите комбинацию клавиш "Ctrl+x". Для подтверждения изменений нажмите клавишу "y" и нажмите клавишу "Enter".
 
4. Перезапустите Postgresql, выполнив команду:
sudo systemctl restart postgresql-1X.service
 
 
5. Введите в терминале следующую команду:
sudo su - postgres
 
 
6. Смените пароль пользователя "postgres":
psql -c "alter user postgres with password '<пароль>'"
 
 
7. Создайте новую базу данных для ситсемы отчетности, выполнив команду:
createdb -T template0 Reports
 
 
8. Выполните команду для восстановления базы данных из резрвной копии:
psql -d <название БД> -f /opt/Automiq/Alpha.Reports.Base/SQL/dump.sql
 
 
9. После настройки СУБД для возвращения в основного ползователя, выполните следующую команду:
exit
 

Настройка аутентификации клиентов

 
Аутентификация клиентов управляется конфигурационным файлом "pg_hba.conf", который расположен в каталоге с данными кластера базы данных. Файл "pg_hba.conf" со стандартным содержимым, создаётся командой "initdb" при инициализации каталога с данными.
 
Обычный формат файла "pg_hba.conf" представляет собой набор записей, по одной в строке. Пустые строки игнорируются, как и любой текст комментария после знака #. Записи не продолжаются на следующей строке. Записи состоят из некоторого количества полей, разделённых между собой пробелами и/или отступами (TAB). В полях могут быть использованы пробелы, если они взяты в кавычки. Если в кавычки берётся какое-либо зарезервированное слово в поле базы данных, пользователя или адресации (например, all или replication), то слово теряет своё особое значение и просто обозначает базу данных, пользователя или сервер с данным именем.
 
Каждая зfпись обозначает тип соединения, диапазон IP-адресов клиента (если он соотносится с типом соединения), имя базы данных, имя пользователя, и способ аутентификации, который будет использован для соединения в соответствии с этими параметрами. Первая запись с соответствующим типом соединения, адресом клиента, указанной базой данных и именем пользователя применяется для аутентификации. Процедур «fall-through» или «backup» не предусмотрено: если выбрана запись и аутентификация не прошла, последующие записи не рассматриваются. Если же ни одна из записей не подошла, в доступе будет отказано.
 
Запись может быть сделана в одном из семи форматов:
local           база     пользователь      метод-аутентификации [параметры]
host            база     пользователь      адрес      метод-аутентификации [параметры]
hostssl       база     пользователь      адрес      метод-аутентификации [параметры]
hostnossl  база     пользователь      адрес      метод-аутентификации [параметры]
host            база     пользователь      IP-адрес      IP-маска      метод-аутентификации [параметры]
hostssl       база     пользователь      IP-адрес      IP-маска      метод-аутентификации [параметры]
hostnossl  база     пользователь      IP-адрес      IP-маска      метод-аутентификации [параметры]
 
Описания полей
Поле
Описание
local
Управляет подключениями через Unix-сокеты. Без подобной записи подключение через Unix-сокеты невозможно.
host
Управляет подключениями, устанавливаемыми по TCP/IP. Записи host соответствуют подключениям с SSL и без SSL. Удалённое соединение по TCP/IP невозможно, если сервер запущен без определения соответствующих значений для параметра конфигурации "listen_addresses".
hostssl
Управляет подключениями, устанавливаемыми по TCP/IP с применением шифрования SSL. Чтобы использовать эту возможность:
сервер должен быть собран с поддержкой SSL.
механизм SSL должен быть включён параметром конфигурации ssl.
hostnossl
Этот тип записей противоположен hostssl, ему соответствуют только подключения по TCP/IP без шифрования SSL.
база
Определяет, каким именам баз данных соответствует запись. Возможные значения:
«all» – подходят все базы данных.
«sameuser» – данная запись соответствует только, если имя запрашиваемой базы данных совпадает с именем запрашиваемого пользователя.
«samerole» (или устар. «samegroup») – запрашиваемый пользователь должен быть членом роли с таким же именем, как и у запрашиваемой базы данных. Суперпользователи не становятся членами роли автоматически, а только если они являются явными членами роли.
«replication» – запись соответствует, если запрашивается подключение для физической репликации. Для таких подключений не выбирается какая-то конкретная база данных.
Любое другое значение воспринимается как имя определённой базы данных. Несколько имён баз данных можно указать, разделяя их запятыми. Файл, содержащий имена баз данных, можно указать, поставив знак «@» в начале его имени
пользователь
Указывает, какому имени (или именам) пользователя базы данных соответствует запись. Возможные значения:
«all» – запись соответствует всем пользователям.
Любое другое значение задаёт либо имя конкретного пользователя базы данных, либо имя группы (если это значение начинается с +). Несколько имён пользователей можно указать, разделяя их запятыми. Файл, содержащий имена пользователей, можно указать, поставив знак «@» в начале его имени.
адрес
Указывает адрес (или адреса) клиентского компьютера, которому соответствует запись. Поле может содержать или имя компьютера, или диапазон IP-адресов, или одно из ключевых слов:
«all» – любой IP-адрес.
«samehost» – любые IP-адреса данного сервера.
«samenet» – любой адрес любой подсети, к которой сервер подключён напрямую.
IP-адрес
IP-маска
Эти два поля могут быть использованы как альтернатива записи IP-адрес/длина-маски. Вместо того, чтобы указывать длину маски, в отдельном столбце указывается сама маска. Например, 255.0.0.0 представляет собой маску CIDR для IPv4 длиной 8 бит, а 255.255.255.255 представляет маску CIDR длиной 32 бита. Эти поля применимы только к записям host, hostssl и hostnossl
метод-аутентификации
Указывает метод аутентификации, когда подключение соответствует записи. Все значения воспринимаются с учётом регистра и должны быть записаны в нижнем регистре. Возможные значения:
«trust» – разрешает безусловное подключение. Этот метод позволяет тому, кто может подключиться к серверу с базой данных Postgres Pro, войти под любым желаемым пользователем Postgres Pro без введения пароля и без какой-либо другой аутентификации.
«reject» – отклоняет подключение безусловно. Эта возможность полезна для «фильтрации» некоторых серверов группы, например, строка с «reject» может отклонить попытку подключения одного компьютера, при этом следующая строка позволяет подключиться остальным компьютерам в той же сети.
«scram-sha-256» – проверяет пароль пользователя, производя аутентификацию SCRAM-SHA-256.
«md5» – проверяет пароль пользователя, производя аутентификацию SCRAM-SHA-256 или MD5.
«password» – требует для аутентификации введения клиентом незашифрованного пароля. Поскольку пароль посылается простым текстом через сеть, такой способ не стоит использовать, если сеть не вызывает доверия.
«gss» – для аутентификации пользователя использует GSSAPI. Этот способ доступен только для подключений по TCP/IP.
«sspi» – для аутентификации пользователя использует SSPI. Способ доступен только для Windows.
«ident» – получает имя пользователя операционной системы клиента, связываясь с сервером Ident, и проверяет, соответствует ли оно имени пользователя базы данных. Аутентификация «ident» может использоваться только для подключений по TCP/IP. Для локальных подключений применяется аутентификация «peer».
«peer» – получает имя пользователя операционной системы клиента из операционной системы и проверяет, соответствует ли оно имени пользователя запрашиваемой базы данных. Доступно только для локальных подключений.
«ldap» – проводит аутентификацию, используя сервер LDAP.
«radius» – проводит аутентификацию, используя сервер RADIUS.
«cert» – проводит аутентификацию, используя клиентский сертификат SSL.
«pam» – проводит аутентификацию, используя службу подключаемых модулей аутентификации (PAM), предоставляемую операционной системой.
«bsd» – проводит аутентификацию, используя службу аутентификации BSD, предоставляемую операционной системой.
параметры
Поле (поля) вида имя=значение, определяющее параметры метода аутентификации. Подробнее о параметрах, доступных для различных методов аутентификации, рассказывается ниже. Помимо описанных далее параметров, относящихся к различным методам, есть один общий параметр аутентификации clientcert, который можно задать в любой записи hostssl. Если он равен 1, клиент должен представить подходящий (доверенный) сертификат SSL, в дополнение к другим требованиям метода проверки подлинности.
 
Файлы, включённые в конструкции, начинающиеся с «@», читаются, как список имён, разделённых запятыми или пробелами. Комментарии предваряются знаком «#», как и в файле "pg_hba.conf", и вложенные «@» конструкции допустимы. Если только имя файла, начинающегося с «@» не является абсолютным путём.
 
Поскольку записи файла "pg_hba.conf" рассматриваются последовательно для каждого подключения, порядок записей имеет большое значение. Обычно более ранние записи определяют чёткие критерии для соответствия параметров подключения, но для методов аутентификации допускают послабления. Напротив, записи более поздние смягчают требования к соответствию параметров подключения, но усиливают их в отношении методов аутентификации.
Например, некто желает использовать trust аутентификацию для локального подключения по TCP/IP, но при этом запрашивать пароль для удалённых подключений по TCP/IP. В этом случае запись, устанавливающая аутентификацию trust для подключения адреса 127.0.0.1, должна предшествовать записи, определяющей аутентификацию по паролю для более широкого диапазона клиентских IP-адресов.
 
Файл "pg_hba.conf" прочитывается при запуске системы, а также в тот момент, когда основной сервер (процесс "postmaster") получает сигнал "SIGHUP". Послать сигнал процессу можно любым из способов:
используя pg_ctl reload
вызвав SQL-функцию pg_reload_conf()
выполнив kill -HUP
Предыдущее утверждение не касается Microsoft Windows: там любые изменения в "pg_hba.conf" сразу применяются к последующим подключениям.
 
Чтобы подключиться к конкретной базе данных, пользователь не только должен пройти все проверки файла "pg_hba.conf", но должен иметь привилегию "CONNECT" для подключения к базе данных. Если вы хотите ограничить доступ к базам данных для определённых пользователей, проще предоставить/отозвать привилегию "CONNECT", нежели устанавливать правила в записях файла "pg_ hba.conf".