對於很多企業來說,有時候希望某些資料表中,員工只能看到與自己有關的資料。
除了之前介紹的 多層級權限需求實現 外,還可以透過新增 FineBI 系統參數實現此場景。
使用者可透過系統參數,自動獲取當前平台登入使用者的登入名,帳號,部門,職務,角色等。
$fine_role=[測試組長, 測試同學]
注:當使用者的角色為空時,此時參數傳回空字串。
$fine_positon=[{jobTitle=部長, departments=人力資源}, {jobTitle=開發組長, departments=BI開發組}]
注1:當使用者的部門職位為空時,此時參數傳回空字串。
注2:若一個使用者有多個角色和多個部門職務的情況,可以在SQL資料集內與split函式配合使用,截取第一個職務欄位。
範例:select * from aaa_user where 職務='${indexofarray(split(indexofarray(split(fine_position,'='),2),","),1)}'
例如登入帳號為 安娜(Anna)
$fine_display_name=安娜(Anna)
1)系統參數在儀表板分析時,無法對其進行 過濾組件參數綁定(特殊參數預設隱藏)過濾等操作。
2)本文介紹的參數用法需要使用「實時資料」,直連資料庫的資料表才能使用。
範例以 FineBI 內建「FRDemo」資料下的「aaa_user」使用者資訊表為例,使用「fine_username」系統參數。
管理者登入FineBI系統,點選「管理系統>資料連結>伺服器資料集」,建立一個 SQL 資料集。
資料集名稱為「使用者資訊表」,選擇資料來源為「FRDemoTW」,新增 SQL 語句「select * from aaa_user」,點選「儲存」,如下圖所示:
管理者登入FineBI系統,點選「管理系統>使用者管理>所有使用者」,點選「匯入使用者」。
選擇新增的伺服器資料集「使用者資訊表」,並設定對應的「帳號、密碼、部門、職務」等,點選「確定」。如下圖所示:
若「平台使用使用者」中「PC端使用使用者」及其子分類均為「不限人數」,則無需執行本節操作。
若「平台使用使用者」中「PC端使用使用者」及其子分類限制了人數,則必須執行本節操作,否則無法查看儀表板。
管理者登入FineBI系統,點選「管理系統>使用者管理>平台使用使用者」,將這些匯入的使用者新增至「BI使用使用者(查看使用者或設計使用者)」中,如下圖所示:
管理者登入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:管理者查看該表,資料為空,因為該使用者表中實際並不存在管理者的資訊。
管理者登入數據決策系統,點選「管理系統>權限管理>普通權限配置」,選擇權限載體為「所有部門」。
點選「資料權限」,為所有部門配置「直連資料」資料夾的「使用」權限。如下圖所示:
注:管理者是看不到任何該表資料的。因為 SQL 語句的過濾條件是「where 帳號='${fine_username}'」,由於該使用者表中實際並不存在管理者的資訊,所以管理者實際是看不到該表的任何資料的。
22 部門使用者 99 (使用者99,密碼123)登入FineBI系統,點選「公共資料>直連資料>使用者資訊表」,只能查看自己的資訊。如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙