В руководстве сказано:
И ещё:
И ещё:
По факту же создаётся пользователь в БД:
При попытке подключения получаю:
В логах постгреса пишет:
Эти манипуляции не помогли:
Что я делаю не так? Цель - подключиться пользователем СУБД, не зарегистрированным в ОС, получив при этом минимальную метку '{0,0}', как и сказано в документации. Вариант с отключением мандатного доступа (как для apache AstraMode off) для СУБД целиком тоже подойдёт, но я не нашёл, как это сделать.
При обращении пользователя к БД определяются его допустимый диапазон меток и набор специальных мандатных атрибутов. Если пользователю не присвоена метка, то он получает по умолчанию нулевую метку, соответствующую минимальному уровню доступа.
1) после прохождения пользователем стандартной процедуры аутентификации сервер считывает из ОС значения максимальной и минимальной меток пользователя и принимает их как максимальную и минимальную метки сессии. При этом, если запись о метках для пользователя не найдена, то максимальная и минимальная метки принимаются равными нулю. Следовательно, пользователи, зарегистрированные 72 РУСБ.10015-01 97 01-1 только в сервере СУБД PostgreSQL и не имеющие учетной записи в ОС сервера, всегда имеют минимальный уровень доступа к информации;
В случае, если пользователь СУБД не зарегистрирован в ОС на стороне сервера СУБД, все его мандатные атрибуты имеют нулевое значение.
Код:
create user test with password 'test';
Код:
psql test -h localhost
Пароль пользователя test:
psql: СБОЙ: error obtaining MAC configuration for user "test"
Код:
error obtaining MAC configuration for user "test", error 2 - Нет такого файла или каталога
Код:
usermod -a -G shadow postgres
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -R -m u:postgres:r /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -d -m u:postgres:r /etc/parsec/capdb
setfacl -R -m u:postgres:r /etc/parsec/capdb
setfacl -m u:postgres:rx /etc/parsec/capdb