1. 概述
1.1 版本
FineBI伺服器版本 | 功能變更 |
---|---|
6.0 | - |
1.2 應用場景
對於很多企業來說,有時候希望某些資料表中,員工只能看到與自己有關的資料。
除了之前介紹的 多層級權限需求實現 外,還可以透過新增 FineBI 系統參數實現此場景。
1.3 功能簡介
使用者可透過系統參數,自動獲取當前平台登入使用者的登入名,帳號,部門,職務,角色等。
系統參數 | 定義 | 傳回值範例 |
---|---|---|
$fine_username | 登入使用者的帳號參數 | $fine_username=eoco |
$fine_role | 登入使用者的角色參數 | $fine_role=[測試組長, 測試同學] 注:當使用者的角色為空時,此時參數傳回空字串。 |
$fine_position | 登入使用者所屬的組織機構集合的參數 | 傳回的是一個json格式的陣列 $fine_positon=[{jobTitle=部長, departments=人力資源}, {jobTitle=開發組長, departments=BI開發組}] 注1:當使用者的部門職位為空時,此時參數傳回空字串。 注2:若一個使用者有多個角色和多個部門職務的情況,可以在SQL資料集內與split函式配合使用,截取第一個職務欄位。 範例:select * from aaa_user where 職務='${indexofarray(split(indexofarray(split(fine_position,'='),2),","),1)}' |
$fine_display_name | 獲取登入系統的姓名(帳號) | 例如登入帳號為 安娜(Anna) $fine_display_name=安娜(Anna) |
1.4 注意事項
1)系統參數在儀表板分析時,無法對其進行 過濾組件參數綁定(特殊參數預設隱藏)過濾等操作。
2)本文介紹的參數用法需要使用「實時資料」,直連資料庫的資料表才能使用。
2. 範例
範例以 FineBI 內建「FRDemo」資料下的「aaa_user」使用者資訊表為例,使用「fine_username」系統參數。
2.1 建立伺服器資料集
管理者登入FineBI系統,點選「管理系統>資料連結>伺服器資料集」,建立一個 SQL 資料集。
資料集名稱為「使用者資訊表」,選擇資料來源為「FRDemoTW」,新增 SQL 語句「select * from aaa_user」,點選「儲存」,如下圖所示:
2.2 匯入使用者
管理者登入FineBI系統,點選「管理系統>使用者管理>所有使用者」,點選「匯入使用者」。
選擇新增的伺服器資料集「使用者資訊表」,並設定對應的「帳號、密碼、部門、職務」等,點選「確定」。如下圖所示:
2.3 設定使用者類型
若「平台使用使用者」中「PC端使用使用者」及其子分類均為「不限人數」,則無需執行本節操作。
若「平台使用使用者」中「PC端使用使用者」及其子分類限制了人數,則必須執行本節操作,否則無法查看儀表板。
管理者登入FineBI系統,點選「管理系統>使用者管理>平台使用使用者」,將這些匯入的使用者新增至「BI使用使用者(查看使用者或設計使用者)」中,如下圖所示:
2.4 建立 SQL 資料集
管理者登入FineBI系統,點選「公共資料」,切換建立資料集屬性為「直連資料」。
管理者登入FineBI系統,點選「公共資料」,新增資料夾「直連資料」。如下圖所示:
選中資料夾,新增「SQL資料集」。
資料集名稱為「使用者資訊表」, SQL語句為 「select * from aaa_user where 帳號='${fine_username}'」,獲取 fine_username 的參數,點選「確定」,如下圖所示:
注1:僅支援實時資料,不支援抽取資料。
注2:FineBI不支援動態選欄位,欄位名和類型不支援動態切換,因此參數不能寫在 SQL 的選欄位的別名部分。
錯誤寫法:select 帳號 as '${fine_username}' ,密碼, 機構,職務 from aaa_user 。
注3:管理者查看該表,資料為空,因為該使用者表中實際並不存在管理者的資訊。
2.5 分配資料使用權限
管理者登入數據決策系統,點選「管理系統>權限管理>普通權限配置」,選擇權限載體為「所有部門」。
點選「資料權限」,為所有部門配置「直連資料」資料夾的「使用」權限。如下圖所示:
2.6 效果查看
注:管理者是看不到任何該表資料的。因為 SQL 語句的過濾條件是「where 帳號='${fine_username}'」,由於該使用者表中實際並不存在管理者的資訊,所以管理者實際是看不到該表的任何資料的。
22 部門使用者 99 (使用者99,密碼123)登入FineBI系統,點選「公共資料>直連資料>使用者資訊表」,只能查看自己的資訊。如下圖所示: