Оформление
Назначение разрешений с помощью системных параметров
1. Обзор
1.1 Версия
| Версия сервера FineBI | Функциональные изменения |
|---|---|
| 6.0 | - |
1.2 Сценарии применения
Для многих организаций иногда желательно иметь определенные таблицы данных, в которых сотрудники могут видеть только те данные, которые имеют к ним отношение.
Помимо описанных ранее требований к многоуровневым разрешениям, этот сценарий также может быть реализован путем добавления параметров системы FineBI.
1.3 Функциональный профиль
Пользователи могут автоматически получить имя пользователя, имя пользователя, отдел, должность, роль и т.д. текущего пользователя платформы через системные параметры.
| системный параметр | определить | Пример возвращаемого значения |
|---|---|---|
| $fine_username | Параметр имени пользователя для входа в систему | $fine_username=eoco |
| $fine_role | Параметры роли для вошедших в систему пользователей | $fine_role=[Test Leader, Test Student]Примечание: Если роль пользователя пуста, параметр возвращает пустую строку. |
| $fine_position | Параметры набора организаций, к которым принадлежит вошедший в систему пользователь | В качестве результата будет получен массив в формате json $fine_positon=[{jobTitle=Minister, departments=Human Resources}, {jobTitle=Development Team Leader, departments=BI Development Team}]].Примечание 1: Если название должности в отделе пользователя пустое, параметр возвращает пустую строку. Примечание 2: Если у пользователя более одной роли и более одной должности в отделе, вы можете использовать его с функцией split в наборе данных SQL, чтобы перехватить поле первой должности.Пример: select * from aaa_user where position='${indexofarray(split(indexofarray(split(fine_position,'='),2),"," ),1)}' |
| $fine_display_name | Получите имя (имя пользователя) для входа в систему | Например, имя пользователя для входа в систему - Анна.$fine_display_name=Anna (Анна) |
1.4 условия
(1) При анализе системных параметров на приборной панели невозможно отфильтровать их по привязкам параметров компонентов фильтра (специальные параметры по умолчанию скрыты).
(2) В этой статье рассказывается об использовании параметров, необходимых для использования "данных в реальном времени ", можно использовать непосредственно подключенную к базе данных таблицу данных.
2. Примеры
В качестве примера взята таблица пользовательской информации "aaa_user" в данных "FRDemo" встроенного FineBI и используется системный параметр "fine_username".
2.1 Новый набор данных серверов
Администратор входит в систему FineBI и нажимает "Management System > Data Connections > Server Dataset", чтобы создать новый набор данных SQL.

Имя набора данных - "User Information Table", выберите источник данных как "FRDemo", добавьте SQL-оператор "select * from aaa_user" и нажмите "Сохранить", как показано ниже:

2.2 Импорт пользователей
Администратор входит в систему FineBI, переходит в раздел "System Management > Управление пользователями > Все пользователи" и нажимает кнопку "Импорт пользователей".
Выберите добавленный серверный набор данных "User Information Table" и установите соответствующие параметры "User Name, Password, Department, Position" и т.д. и нажмите "OK". Как показано на следующем рисунке:

2.3 Установка типа пользователя
Если "Пользователи ПК" и ее подкатегории в "Пользователях платформы" имеют значение "Неограниченное число пользователей", выполнять операцию в этом разделе не нужно.
Если количество людей ограничено в разделе "Пользователи платформы" для "Пользователей ПК" и его подкатегорий, необходимо выполнить действия в этом разделе, иначе вы не сможете просматривать панель управления.
Администратор входит в систему FineBI, нажимает "System Management > Управление пользователями > Пользователи платформы" и добавляет этих импортированных пользователей в "Пользователи BI (Пользователи просмотра или Пользователи проектирования)", как показано на следующем рисунке:

2.4 Создание наборов данных SQL
Администратор входит в систему FineBI, нажимает на "Public Data" и переключает атрибут вновь созданного набора данных на "Directly Connected Data".

Администратор входит в систему FineBI, нажимает на "Public Data" и добавляет папку "Direct Connection Data". Как показано на рисунке ниже:

Выберите папку и добавьте "SQL Dataset".
Имя набора данных - "User Information Table", а SQL-оператор - "select * from aaa_user where account='${fine_username}'", получите параметр fine_username и нажмите "OK", как показано ниже:
Примечание 1: Поддерживаются только данные в реальном времени, но не извлеченные данные.
Примечание 2: FineBI не поддерживает динамический выбор поля, имя и тип поля не поддерживают динамическое переключение, поэтому параметр не может быть записан в псевдоним выбранного поля в SQL.
Неправильно написано: select account as '${fine_username}' ,password, institution,position from aaa_user .
Примечание 3: Администратор просматривает таблицу, и данные в ней пустые, потому что в таблице пользователей нет информации об администраторе.

2.5 Назначение прав доступа к данным
Администратор входит в Data Decision System, нажимает "Management System > Privilege Management > General Privilege Configuration" и выбирает носитель привилегий как "All Departments".
Нажмите на "Разрешения данных", чтобы настроить разрешения "Использовать" для папки "Прямые данные" для всех отделов. Как показано на рисунке ниже:

2.6 Эффекты просмотра
Примечание: Администратор не может видеть никаких данных в этой таблице. Поскольку условием фильтрации в операторе SQL является "where account='${fine_username}'", администратор не может видеть никаких данных в таблице, поскольку в таблице пользователей нет информации об администраторе.
22 Пользователь отдела 99 (user 99, password 123) входит в систему FineBI и нажимает на "Public Data > Direct Connection Data > User Information Table" и может просматривать только свою собственную информацию. Как показано на рисунке ниже:

26 Пользователь отдела 98 (user 98, password 123) входит в систему FineBI, нажимает "Public Data > Direct Connect Data > User Information Table" и может просматривать только свою собственную информацию. Как показано на рисунке ниже:
