В этой статье:
Служебный пользователь подсистемы безопасности обеспечивает:
вход в систему;
корректную работу аудита и блокировку пользователей;
использование роли приложения при работе с СУБД;
использование функции хэширования паролей.
Примечание. Создание служебного пользователя необходимо только для репозитория, созданного на базе СУБД Oracle, Microsoft SQL Server, PostgreSQL.
Для создания служебного пользователя подсистемы безопасности в ОС Linux:
Сохраните созданные учётные данные служебного пользователя на компьютере с установленным BI-сервером.
После выполнения действий будет создан служебный пользователь подсистемы безопасности средствами СУБД.
Важно. Зарезервированный служебный пользователь P4AUDIT объявлен устаревшим и в следующих версиях «Форсайт. Аналитическая платформа» будет заблокирован. Для обеспечения безопасности и входа в систему создайте нового служебного пользователя подсистемы безопасности и сохраните его учётные данные на компьютере с установленным BI-сервером.
Для изменения пароля существующего служебного пользователя подсистемы безопасности используйте следующие скрипты:
ALTER USER SERVICE_USER_NAME IDENTIFIED BY 'NEW_PASSWORD';
ALTER ROLE "SERVICE_USER_NAME" WITH PASSWORD 'NEW_PASSWORD';
ALTER LOGIN SERVICE_USER_NAME WITH PASSWORD = 'NEW_PASSWORD';
Где:
SERVICE_USER_NAME. Имя служебного пользователя;
NEW_PASSWORD. Новый пароль служебного пользователя.
Для создания учётных данных служебного пользователя используйте средства СУБД. Создайте и запустите скрипт, с помощью которого на сервере СУБД будет создан служебный пользователь с определённым набором прав доступа к объектам.
Скрипт для СУБД Oracle, PostgreSQL, Microsoft SQL Server:
-- Создание служебного пользователя
CREATE USER SERVICE_USER_NAME
IDENTIFIED BY SERVICE_USER_PASSWORD
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP_TABLESPACE_NAME
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- Раздача прав доступа
GRANT CONNECT TO SERVICE_USER_NAME;
GRANT RESOURCE TO SERVICE_USER_NAME;
ALTER USER SERVICE_USER_NAME DEFAULT ROLE ALL;
GRANT UNLIMITED TABLESPACE TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_DU_CHK TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_DU_CLEAR TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_DU_SAVE TO SERVICE_USER_NAME;
GRANT SELECT ON SCHEMA_NAME.B_JLO TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_LOCKUSER TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_LOGERR TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_LOGNERR TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_LOGNERR_S TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_SEC_DAT_VALUE TO SERVICE_USER_NAME;
GRANT EXECUTE ON SCHEMA_NAME.B_USR_CHECK TO SERVICE_USER_NAME;
GRANT SELECT ON SYS.V_$SESSION TO SERVICE_USER_NAME;
-- Создание служебного пользователя
CREATE ROLE "SERVICE_USER_NAME" WITH
LOGIN
NOSUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
ENCRYPTED PASSWORD 'SERVICE_USER_PASSWORD';
-- Раздача прав
ALTER ROLE "SERVICE_USER_NAME" SET lo_compat_privileges TO 'on';
GRANT SELECT ON TABLE SCHEMA_NAME.b_jlo TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_logerr(character varying, character varying, character varying, character varying, character varying, character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_lognerr(character varying, character varying, character varying, character varying, character varying, character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_lognerr_s(character varying, character varying, character varying, character varying, character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_sec_dat_value(character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_du_chk(character varying, numeric) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_du_clear(character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_du_save(character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_usr_check(character varying) TO "SERVICE_USER_NAME";
GRANT EXECUTE ON FUNCTION SCHEMA_NAME.b_lockuser(character varying, integer) TO "SERVICE_USER_NAME";
Скрипт используется для схемы по умолчанию public. Если репозиторий метаданных был создан на пользовательской схеме, то добавьте строку:
GRANT USAGE ON SCHEMA "SCHEMA_NAME" to "SERVICE_USER_NAME";
Перед строкой:
ALTER ROLE "SERVICE_USER_NAME" SET lo_compat_privileges TO 'on';
-- Создание учётных данных служебного пользователя
create login SERVICE_USER_NAME with password = 'SERVICE_USER_PASSWORD';
-- Создание служебного пользователя
create user SERVICE_USER_NAME for login SERVICE_USER_NAME;
-- Раздача прав
grant execute on SCHEMA_NAME.B_LOGERR to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_LOGNERR to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_LOGNERR_S to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_SEC_DAT_VALUE to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_DU_CHK to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_DU_CLEAR to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_DU_SAVE to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_USR_CHECK to SERVICE_USER_NAME;
grant execute on SCHEMA_NAME.B_LOCKUSER to SERVICE_USER_NAME;
Где:
SERVICE_USER_NAME. Имя создаваемого служебного пользователя;
Важно. Имя пользователя P4AUDIT зарезервировано системой и недоступно для использования.
SERVICE_USER_PASSWORD. Пароль создаваемого служебного пользователя;
SCHEMA_NAME. Имя схемы по умолчанию public или пользовательской схемы.
Для сохранения созданных учётных данных служебного пользователя на компьютере с установленным BI-сервером запустите консольную утилиту PP.Util, которая расположена в папке установки «Форсайт. Аналитическая платформа», со следующими параметрами:
sudo PP_NODISPLAY=1 ./PP.Util /save_audit_creds /ALG enc_alg /SCOPE scope realm|/DC login password
Где:
enc_alg. Алгоритм шифрования, который будет применяться при шифровании учётных данных:
gos. По умолчанию. Используется шифрование алгоритмом GOST R 34.11-2012;
pro. Используется шифрование с помощью Data Protection API (DPAPI) в ОС Windows. Данный алгоритм шифрования недоступен для ОС Linux;
sim. Учётные данные сохраняются в открытом виде.
Важно. Для обеспечения безопасности в промышленной эксплуатации продукта «Форсайт. Аналитическая платформа» используйте значение gos или pro.
Необязательный параметр. Если параметр не задан, то используется значение по умолчанию;
scope. Способ сохранения учётных данных:
hkcu. Только для текущего пользователя.
В ОС Windows учётные данные будут храниться в ветке реестра текущего пользователя [HKEY_CURRENT_USER\SOFTWARE\Foresight\Foresight Analytics Platform\9.0\Audit\Credentials\Item0] и доступны для использования только текущему пользователю на компьютере.
В ОС Linux учётные данные будут храниться в файле registry.reg, расположенном в каталоге по умолчанию. Каталог по умолчанию зависит от указания переменой окружения HOME в файле /etc/opt/Foresight/fp9.x-biserver/envvars:
если переменная задана, то файл будет расположен в каталоге $HOME/.config/Foresight/Foresight Analytics Platform/registry;
если переменная не задана, то файл будет расположен в каталоге /root/.config/Foresight/Foresight Analytics Platform/registry для Debian-подобных дистрибутивов или /usr/share/httpd/.config/foresight/Foresight Analytics Platform/registry для RedHat-подобных дистрибутивов;
hklm. Для всех пользователей.
В ОС Windows учётные данные будут храниться в ветке реестра локальной машины [HKEY_LOCAL_MACHINE\SOFTWARE\Foresight\Foresight Analytics Platform\9.0\Audit\Credentials\Item0] и доступны для использования всем пользователям на компьютере.
В ОС Linux учётные данные будут храниться в файле registry.reg, расположенном в каталоге /opt/Foresight/fp9.x-biserver/bin;
file. По умолчанию. В файл settings.xml.
В ОС Windows учётные данные будут храниться в файле settings.xml, расположенном по пути %PROGRAMDATA%\Foresight\Foresight Analytics Platform.
Примечание. По умолчанию папка ProgramData скрыта в операционной системе.
В ОС Linux учётные данные будут храниться в файле settings.xml, расположенном в созданном каталоге. Каталог зависит от указания переменой окружения HOME в файле /etc/opt/Foresight/fp9.x-biserver/envvars:
если переменная задана, то файл будет расположен в каталоге $HOME/.config/Foresight/Foresight Analytics Platform;
если переменная не задана, то файл будет расположен в каталоге /var/www/.config/Foresight/Foresight Analytics Platform для Debian-подобных дистрибутивов или /usr/share/httpd/.config/foresight/Foresight Analytics Platform для RedHat-подобных дистрибутивов.
Если файл содержится по указанным путям, то он будет перезаписан. Если файл отсутствует, то он будет создан.
Важно. При сохранении учётных данных служебного пользователя в файл settings.xml в ОС Linux выполните предварительные действия, указанные ниже, для раздачи прав доступа к файлу.
Необязательный параметр. Если параметр не задан, то используется значение по умолчанию;
realm|/DC. Область действия учётных данных служебного пользователя. Выберите один из способов:
realm. Если в списке репозиториев содержится более одного репозитория и учётные данные служебного пользователя должны отличаться для каждого из них, то задайте идентификатор вида «SERVER_DATABASE|TYPE» для сервера базы данных, указанного в настройках подключения к конкретному репозиторию, где:
SERVER_DATABASE. IP-адрес или псевдоним, под которым зарегистрирован сервер базы данных;
Примечание. При настройке подключения к репозиторию на каждом клиентском компьютере или на компьютере с установленным BI-сервером IP-адрес или псевдоним сервера должен совпадать с сервером, указанным в параметре SERVER_DATABASE.
TYPE. Тип используемого драйвера. Допустимы следующие значения: «POSTGRES», «MSSQL», «ORCL»;
Например: "127.0.0.1|POSTGRES".
Примечание. Для избежания синтаксических ошибок значение задаётся в верхних двойных кавычках.
/DC. Если в списке репозиториев содержится один или более репозиториев, но учётные данные служебного пользователя должны быть одинаковыми для всех репозиториев, то используйте данный параметр без указания дополнительных настроек.
Обязательный параметр;
login. Имя существующего служебного пользователя. Обязательный параметр;
password. Пароль существующего служебного пользователя. Необязательный параметр. Если пароль не указан, то он будет запрошен в интерактивном режиме.
При сохранении созданных учётных данных служебного пользователя в файл settings.xml в ОС Linux выполните предварительные действия для раздачи прав доступа к файлу:
Создайте каталог для хранения учётных данных служебного пользователя с помощью команды:
если переменная HOME задана:
sudo mkdir -p "$HOME/.config/Foresight/Foresight Analytics Platform"
если переменная HOME не задана:
sudo mkdir –p "/var/www/.config/Foresight/Foresight Analytics Platform"
Назначьте владельцем каталога пользователя www-data с помощью команды:
если переменная HOME задана:
sudo chown -R www-data:www-data "$HOME/.config/Foresight/Foresight Analytics Platform"
если переменная HOME не задана:
sudo chown -R www-data:www-data "/var/www/.config/Foresight/Foresight Analytics Platform"
Указанный пример применим для раздачи прав в Ubuntu. При работе в других дистрибутивах ОС Linux замените «www-data:www-data» на значение из таблицы:
Имя пользователя:Группа | Дистрибутив ОС Linux |
www-data:www-data | Ubuntu, Astra Linux SE 1.7 |
apache:apache | RedHat-подобные дистрибутивы, ALT Linux |
Запустите утилиту PP.Util от имени пользователя www-data, daemon или apache, и сохраните учётные данные служебного пользователя. Пример команды:
sudo -u <имя пользователя> PP_NODISPLAY=1 /opt/Foresight/fp9.x-biserver/bin/PP.Util /sac /SCOPE file "SERVER_DATABASE|POSTGRES" SERVICE_USER_NAME SERVICE_USER_PASSWORD
Где:
SERVER_DATABASE. IP-адрес или псевдоним, под которым зарегистрирован сервер базы данных;
SERVICE_USER_NAME. Имя служебного пользователя;
SERVICE_USER_PASSWORD. Пароль служебного пользователя.
Перезапустите сервер Apache в зависимости от операционной системы:
для RedHat-подобных дистрибутивов:
sudo systemctl restart httpd-fp9.x
для Ubuntu, Astra Linux SE 1.7:
sudo systemctl restart apache2-fp9.x
для ALT Linux:
sudo systemctl restart httpd2-fp9.x
После выполнения действий учётные данные служебного пользователя будут сохранены в файл settings.xml.
Важно. Служебный пользователь может быть заблокирован при попытке входа в репозиторий, если его учётные данные, добавленные с помощью приложения PP.Util, не совпадают с исходными учётными данными, заданными при создании. Для разблокировки служебного пользователя обратитесь к администратору СУБД.
См. также:
Создание и управление репозиториями метаданных | Менеджер репозитория Linux