為資料列層級安全性建立資料原則
使用資料原則將列層級安全性應用於虛擬連線中的一或多個表。資料原則會篩選資料,確保使用者只看到他們應該看到的資料。資料原則適用於即時連線和擷取連線。
關於資料原則
資料原則有三個主要元件:
- 其適用的資料表,稱為原則資料表。這些是經過篩選的資料表。
- 映射欄用來定義資料表之間(例如,權利和事實表之間)的關係,以及資料表欄和原則欄之間關係。原則欄為用於篩選資料的欄。
- 原則條件是查詢時間內用來評估每一列的運算式或計算。如果原則條件為 TRUE,則該行將顯示在查詢中。
建立資料原則時,需要一個可用於篩選資料的資料欄。此欄稱為原則欄。資料由原則條件篩選,通常使用使用者函數,例如 USERNAME() 或 FULLNAME()。
如果原則表包含可以篩選的資料欄,則將該欄用作原則欄。
如果原則表不包含這種資料欄,請使用包含可用於篩選資料的欄的權利表。權利表是一張表,其中包含可用於篩選原則表的原則欄和可關聯(對應)到原則表中的欄的另一資料欄(如上方資料原則範例圖所示)。
使用原則表中的原則欄進行篩選
篩選資料最常見的方法是使用表中包含要篩選資料的欄。將該欄用作原則欄,然後將適當的表欄對應到原則欄。
要使用原則欄篩選資料,首先,從左窗格向原則新增表。若要建立資料表,請執行以下操作之一:
- 按兩下資料表名稱。
- 按一下資料表名稱旁邊的下拉箭頭,然後選取使用原則管理資料表。
- 或者,將資料表拖到右側,並將其放在新增為原則資料表上。
表新增到原則後,盾牌圖示 會出現在左窗格中表名稱的右側,表示它是一個原則表。
接下來,對應欄以在表中的資料欄名稱和原則欄名稱之間建立關係。使用資料原則條件中的原則欄名稱來控制使用者的列層級的資料存取:
- 按一下+將欄新增到地圖,以新增一欄或多欄以用於篩選資料。
- 命名原則欄。將在原則條件中使用此名稱。
- 對於原則適用的每個資料表,使用下拉式功能表選取對應到原則欄的資料表欄。
- 對要在原則條件中使用的盡可能多的原則欄重複此流程。
提示:可以不使用「+新增資料欄以對應」按鈕,而是開始在原則條件區域中輸入計算並使用自動完成功能來選擇資料欄名稱,然後將填充步驟 1 下的原則欄資訊。
使用原則表中原則欄的範例
- 「銷售」表有一個「銷售人員」欄,「地區」表有一個「銷售代表」欄。「銷售人員」和「銷售代表」資料與站台上的 Tableau 使用者的全名相符。
- 您希望按「銷售人員」篩選「銷售」和「地區」資料,因此將原則欄命名為「銷售人員」,然後將「銷售」中的「銷售人員」欄和「地區」中的「銷售代表」欄對應到「銷售人員」原則欄。
- 然後編寫原則條件來篩選兩個表。使用「銷售人員」原則欄和 FULLNAME() 使用者函數,讓每個使用者只能看到自己的資料。
使用權利表中的原則欄進行篩選
當原則表不包含可以篩選的欄時,將使用權利表。可以使用權利表將資料表中的資料欄對應到權利表中的欄。注意以下各項:
- 確保將權利表作為表包含在虛擬連線中。可以將來自任何連線或資料庫的表用作中央權利表,以保護許多其他資料庫中的表。在某些情況下,與要保護的表位於同一資料庫中的權利表可能存在潛在的安全性風險,因為它可能會洩露員工資料。在不同的資料庫中擁有一個權利表可以更容易地控制權限,例如,授予某人存取資料庫的權限。
- 如果不希望虛擬連線使用者看到授權表,可以切換資料表索引標籤上「可見性」欄中的設定以隱藏它。隱藏後,權利表仍可用於原則篩選,但不能在視覺效果或工作簿資料來源中使用。
請注意:權利表不支援直接連線到流程輸出(.hyper 檔)。流程輸出必須直接寫入資料庫。
使用權利表來篩選資料:
- 新增要套用資料原則的資料表。執行以下操作之一:
- 按兩下資料表名稱。
- 按一下資料表名稱旁邊的下拉箭頭,然後選取使用原則管理資料表。
- 或者,將資料表拖到右側,並將其放在新增為原則資料表上。
- 表新增到原則後,盾牌圖示 會出現在左窗格中表名稱的右側,表示它是一個原則表。
- 選取權限資料表,然後:
- 按一下下拉箭頭,並選取用作權限資料表。
- 或者,將資料表拖到右側,並將其放在新增為權限資料表上。
- 對於原則適用的每個資料表,按一下下拉式功能表,並選取欄以將原則表對應到權限資料表。
使用權利表中原則欄的範例
- 要篩選的資料具有 EMP_ID 欄,但沒有員工姓名欄。但是,您有第二個表,其中包含 EMP_ID 和員工的「全名」欄。並且,員工「全名」欄中的值與站台上 Tableau 使用者的全名相符。
- 可以將「員工」表作為權利表新增到原則中,然後將原則表欄名稱 EMP_ID 對應到每個表的權利欄名稱 EMP_ID。
- 然後在原則條件中使用 FULLNAME() 函數將 Tableau Server 使用者的全名與權利表的 [全名] 欄(即原則欄)對應,讓每個使用者只能看到他們自己的資料。
編寫原則條件
建立資料原則的最後一步是編寫原則條件,它用於定義列層級存取的計算或運算式。原則條件通常用於透過使用者功能限制對使用者或群組的存取。
原則條件:
- 在資料原則中為必需。
- 必須評估為 true 或 false。
- 原則條件為 true 時顯示列。
關閉原則索引標簽後,它不會捨棄您的工作。
原則條件範例
僅顯示「地區」欄值為 North 的列:
[Region] = "North"
使登入使用者能夠查看使用者名稱與 EmployeeName 中的值對應的列:
FULLNAME() = [EmployeeName]
使 Managers 群組的成員能夠查看所有列,而使用者只能看到其使用者名稱與 employee_name 欄中的值對應的列:
ISMEMBEROF('Managers') OR USERNAME() = [employee_name]
原則條件中支援的 Tableau 函數
原則條件支援 Tableau 函數的子集:
- 邏輯(與空值相關的除外)
- 字串
- 使用者
- Date(日期)
- 數值:MIN、MID、MAX
若要查看支援哪些特定函數,請在虛擬連線編輯器的「資料原則」索引標簽上,查看右側的「參考」面板。
附註:若虛擬連線具有包含使用者函數(連結在新視窗開啟)(例如 USERNAME()
)的資料原則,而且您從工作簿或資料來源連線到該虛擬連線並在其中建立擷取,則擷取將僅包含與建立擷取時虛擬連線資料原則相符的列。若要利用資料原則中有使用者函數的虛擬連線,請使用從工作簿或資料來源到虛擬連線的即時連線,而不是擷取。
誰可以執行此動作
要認證資料原則,您必須
- 具有虛擬連線連線到的資料庫的認證,以及
- 為伺服器或站台管理員,或 Creator。
後續步驟
建立資料原則後,下一步是驗證它是否如預期運作。請參閱以使用者身分使用預覽測試資料列層級安全性。或者,如果準備與他人共用虛擬連線及其資料原則,請參閱發佈虛擬連線並設定權限。
資源
有關計算的詳細資訊,請參見 Tableau Desktop 和 Web 製作說明中的了解 Tableau 中的計算(連結在新視窗開啟)。
有關使用者函數的詳情,請參閱 Tableau Desktop 和 Web 製作說明中的使用者函數(連結在新視窗開啟)。
有關 Tableau 中其他列層級安全性選項的資訊,請參見 Tableau Server 說明中的 Tableau 中列層級安全性選項概觀(連結在新視窗開啟)。