資料庫中的資料列層級安全性

若您的組織已經努力地在資料庫中構建資料列層級安全性 (RLS),則您可能可以使用以下技術之一來利用現有的 RLS。要利用資料庫的安全模型,需要即時連線。此外,這些技術可能在 Tableau Cloud 中不可用;Tableau Cloud 的 Tableau 使用者名稱是唯一的電子郵件地址,該地址通常不是資料庫端的使用者身分。

與使用 Tableau 組建內建 RLS 模型的想法相比,實作一個內建 RLS 模型不一定會更輕鬆或更好;當組織已經對這些技術進行投資並且想利用這些投資時,通常會利用這些技術。

附註:有關可用於在 Tableau 中實作資料列層級安全性之替代方法的資訊,請參閱 Tableau 中的列層級安全性選項概觀

模擬 (Microsoft SQL Server)

可以設定 Microsoft SQL Server(和一些相關系統),以便資料庫使用者只能使用安全連接資料表或 DBA 組建的檢視存取具有內建 RLS 篩選條件的檢視。Tableau 可以使用一種稱為「模擬」的概念來利用這一點。

將包含 MS SQL Server 連線的 Tableau 資料來源發佈到 Tableau Server 時,有兩個驗證選項可用於利用模擬。您看到的功能表將取決於您是使用網路驗證還是輸入使用者名/密碼憑證以登入到 SQL Server。

要為可以存取 Tableau Server 中已發佈資料來源的任何使用者啟用 RLS 篩選條件,AD 執行身分帳戶或內嵌 SQL 伺服器認證必須對資料庫中將存取儀表板或資料來源的所有 Tableau 使用者具有 EXECUTE AS 權限。所有 Tableau 使用者都必須以使用者身分存在於資料庫伺服器中,並且具有您嘗試連線到的檢視的 SELECT 權限(並套用 RLS)。有關要求的完整清單,請參閱模擬要求

Kerberos 和約束委派

Tableau Server 內使用 Kerberos 的約束委派作業與模擬類似,其允許 Tableau Server 使用工作簿檢視或檢視的 Kerberos 認證代表 Viewer 執行查詢,因此若已在資料庫上設定 RLS,工作簿的 Viewer 只會看到他們自己的資料。

要查看支援 Kerberos 委派的資料庫的完整清單,請參閱啟用 Kerberos 委派。需要 Active Directory;安裝有 Tableau Server 的電腦必須加入到 Active Directory 域。發行資料來源時指定的驗證方法(連結在新視窗開啟)必須是檢視器憑證

請注意,使用 Microsoft Analysis Services 時,可以為 RLS 使用 Kerberos。

OLAP Cube

Tableau 中的 OLAP Cube 連線沒有等效的資料來源篩選條件,這是 Tableau 中基於權利資料表的 RLS 方法或存取 USERNAME() 函式所必需的。出於這些原因,Kerberos 和約束委派是在 OLAP 資料庫中構建 RLS 的建議方法,其允許 Tableau 利用已在 OLAP 伺服器端實作的使用者篩選條件。

如果檢視儀表板的使用者不是域的一部分,則可以使用手動方法來建立使用者篩選條件。但是,由於產生的使用者篩選條件集無法新增為資料來源篩選條件,而是將存在於篩選條件架上,因此請注意,使用此方法的任何已發佈檢視都不允許使用 Web 編輯和下載工作簿功能。

SAML 委託和 SAP HANA

如果將 Tableau Server 設定為使用設定 SAP HANA SSO來提供單一登入體驗,則將使用檢視器憑證作為該使用者執行查詢,該查詢將在使用者層級上套用的任何安全性範圍內操作。 發行資料來源時指定的驗證方法(連結在新視窗開啟)必須是檢視器憑證

初始 SQL 強制使用者特定的工作階段 (Oracle VPD)

初始 SQL 可讓您指定在連線到資料庫時執行的 SQL 命令,以便設定在工作階段期間使用的臨時資料表或設定自訂資料環境。

對於 Oracle VPD,您可以透過執行特定的存儲程序或函式來設定特定于使用者的工作階段,以設定資料庫連線的內容從而匹配 Tableau 使用者的使用者名:

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

與模擬一樣,對於 RLS 使用此要求時,高層級要求是相同的;DBA 必須設定 VPD 和所有關聯的使用者才能存在於資料庫中。

在 MS SQL Server 上,您可以強制 EXECUTE 作為命令(但是,這與 Tableau 使用模擬所執行的動作類似):

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

附註:如果資料來源已內嵌,並且使用者具有 Web 編輯或下載工作簿的權限,則 RLS 不存在,因為可以輕鬆移除實施它的初始 SQL。資料來源應單獨發佈,而不是內嵌在工作簿中。

資料列層級安全性方法的比較矩陣

方法有用時優點缺點
權利資料表(推薦)
  • 資料庫中存在權利的概念
  • 組織首次設定列層級安全性
  • 易於測試、更新、維護和擴充
  • 適用于版本 2018.3+ 中的即時連線和擷取
  • 需要建立和維護權利資料表
  • 可能需要選取和建立適當的金鑰來優化效能
帶擷取的 CONTAINS()
  • 在版本 2018.3 之前在擷取中實作 RLS
  • 允許您利用擷取效率
  • 需要將所有使用者對應到單欄
  • 由於字串計算,難以切換回即時連線
模擬
  • 存取資料的每個使用者都將以使用者身分存在於您的 SQL Server 中(通常為內部部署)
  • 安全性在一個位置得到處理和維護,那就是資料庫
  • 要求存取檢視的每個人以使用者身分存在於您的 SQL Server 中
  • 僅適用于 Microsoft SQL Server
Kerberos
  • 為 Kerberos 委派設定所有必要的資料庫,並在資料庫上設定 RLS(通常為內部部署)
  • Viewer 的名稱會出現在資料庫的存取記錄檔中
  • 在資料庫中處理和維護安全性
  • 必須將 Tableau 設定為使用 LDAP - Active Directory
  • Tableau Server 必須加入 AD 域
  • 每個使用者都必須存在於您的 AD 域中
初始化 SQL
  • 資料庫支援初始 SQL,並且在資料庫端設定 RLS
  • 允許在載入時傳遞 Tableau 參數
  • 無法與其他使用者共用的專用連線
  • 使用者必須存在於資料庫中才能以使用者身分執行查詢
  • 並非所有資料庫都支援初始 SQL
  • 由於快取共用受限,可能會影響效能
感謝您的意見反應!已成功提交您的意見回饋。謝謝!