我在 Amazon QuickSight 中將 RLS 套用至我的資料集,但我遇到資料存取問題。
簡短描述
以下是在 Amazon QuickSight 資料集上使用資料列層級安全性 (RLS) 時可能會遇到的常見問題:
- 您無法在 QuickSight 內嵌儀表板中查看匿名 QuickSight 使用者的任何資料。
- 受限制的使用者仍然可以查看所有資料。
- 不受限制的使用者無法查看任何資料。
- 套用 RLS 時,您會收到錯誤代碼 DatasetRulesInvalidColType。
- 建立分析時,您會收到錯誤代碼 DatasetRulesUserDenied。
RLS 具有下列限制:
- RLS 僅適用於 QuickSight 企業版。
- RLS 僅支援文字資料,例如資料集規則中欄位的字串、字元和 varchar。目前,RLS 不適用於日期或數字欄位。
- 每位使用者套用的完整規則記錄集不得超過 999。包含超過 999 個規則的資料集可能無法將 RLS 規則套用至資料集。
- 您無法將 RLS 套用至具有預設 Null 值的空白資料列,因為 QuickSight 將 Null 視為空白欄位值。但是,欄位中的空格會視為常值,因此資料集規則會套用至這些資料列。
- 只有新增至資料集規則的使用者才能根據定義的規則查看資料。其他使用者無法查看資料。
- 在使用資料集規則中的多個欄位時,規則會作為 AND 運算子。目前不支援 OR 運算子。
- 使用 GenerateEmbedUrlForAnonymousUser API 的匿名使用者的內嵌儀表板僅支援以 RLS 標籤為基礎的規則。如果您使用 GenerateEmbedUrlForRegisteredUser API 為註冊使用者內嵌了儀表板,請使用使用者層級規則。
解決方法
我無法在 QuickSight 內嵌儀表板中查看匿名使用者的任何資料
如果您針對匿名內嵌儀表板使用以標籤為基礎的規則,則無法查看或修改資料。若要查看資料,您必須將以使用者為基礎的 RLS 規則新增至資料集。
在下列範例資料集規則中,John Stiles 只能查看來自物流部門的資料。Martha Rivera 可以查看資料集中的所有資料:
UserName,Department JohnStiles,Logistics
MarthaRivera,
**注意:**您可以在資料集上套用以標籤為基礎的規則和以使用者為基礎的 RLS 規則。
受限制的使用者仍然可以查看所有資料
如果資料集包含太多規則,即使您已成功套用 RLS,受限制的使用者仍然可以查看所有資料。若要解決此問題,請確定您的資料集僅包含 999 個或更少的規則。如果您依 UserName 限制使用者,且資料集規則中具有超過 999 個使用者,請建立 QuickSight 群組。將使用者新增至群組,並在資料集規則中使用 GroupName,而非 UserName。
不受限制的使用者無法查看任何資料
以下是不受限制的使用者無法查看資料的可能原因:
- 此使用者不存在於資料集規則中。檢查資料集規則,以確認所有預期的使用者都存在。
- UserName 或 GroupName 與 QuickSight 中的使用者或群組不相符。檢查資料集規則中的 UserName 或 GroupName,以確認它們與 QuickSight 中的使用者或群組相符。
套用 RLS 時,您會收到錯誤代碼 DatasetRulesInvalidColType
在您對日期或數字欄位使用 RLS 時,會發生 DatasetRulesInvalidColType 錯誤。
檢查用於評估資料集規則中的 RLS 的欄位,以確認資料類型是字串。您也可以編輯資料集,以在 QuickSight 中將數字欄位轉換為字串。
建立分析時,您會收到錯誤代碼 DatasetRulesUserDenied
當使用者不在資料集規則中時,會發生此 DataRulesUserDenied 錯誤。若要解決此錯誤,請將使用者新增至資料集規則,然後重新整理資料集。
相關資訊
將資料列層級安全 (RLS) 與以使用者為基礎的規則搭配使用來限制對資料集的存取
在內嵌匿名使用者的儀表板時,將資料列層級安全 (RLS) 與以標籤為基礎的規則搭配使用來限制對資料集的存取
使用 AND 和 OR 運算子新增篩選條件 (群組篩選條件)