共用方式為


物件層級安全性

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

數據模型安全性一開始會有效實作 角色 和數據列層級篩選,以定義數據模型對象和數據的用戶許可權。 針對表格式 1400 和更新版本的模型,您也可以定義物件層級安全性 (OLS),其中包含 Roles 物件中的數據表層級安全性和數據行層級安全性。 設定時,會保護數據表和數據行數據,以及元數據,協助防止惡意用戶發現這類物件存在。

您可以使用開放原始碼 表格式編輯器表格式模型腳本語言 (TMSL),或 表格式物件模型 (TOM)來設定 OLS。

數據表層級安全性

使用資料表層級安全性時,您不僅可以限制資料表數據的存取,還可以限制機密數據表名稱元數據的存取。 將 Roles 物件中 tablePermissions 類別的 metadataPermission 屬性設定為 none

在此範例中,Product 數據表之 tablePermissions 類別的 metadataPermission 屬性設定為 none:

"roles": [
  {
    "name": "Users",
    "description": "All allowed users to query the model",
    "modelPermission": "read",
    "tablePermissions": [
      {
        "name": "Product",
        "metadataPermission": "none"
      }
    ]
  }

數據行層級安全性

與數據表層級安全性類似,使用數據行層級安全性,您不僅可以限制數據行數據的存取,也可以限制機密數據行名稱元數據的存取。 在 Roles 物件中,將 columnPermissions 類別的 metadataPermissions 屬性設定為 none

在此範例中,Employees 數據表中 Base Rate 數據行之 columnPermissions 類別的 metadataPermission 属性設定為 none:

"roles": [
  {
    "name": "Users",
    "description": "All allowed users to query the model",
    "modelPermission": "read",
    "tablePermissions": [
      {
        "name": "Employee",
        "columnPermissions": [
          {
            "name": "Base Rate",
            "metadataPermission": "none"
          }
        ]
      }
    ]
  }

限制

  • 如果模型中斷關聯性鏈結,則無法為模型設定數據表層級安全性。 設計時間會產生錯誤。 例如,如果數據表 A 與 B 和 B 之間有關聯性,則無法保護數據表 B。如果數據表 B 受到保護,則數據表 A 上的查詢無法傳輸數據表 A 與 B 之間的關聯性,以及 B 和 C。在此情況下,可以在數據表 A 與 C 之間設定個別關聯性。

    數據表層級安全性

  • 數據列層級安全性和物件層級安全性無法與不同的角色結合,因為它可能會對受保護的數據引入非預期的存取權。 查詢時會產生錯誤給屬於這類角色組合的使用者。

  • 動態計算(量值、KPI、DetailRows)在參考安全數據表或數據行時,會自動受到限制。 雖然沒有明確保護量值的機制,但可以藉由更新表達式來參考受保護的數據表或數據行,以隱含保護量值。

  • 參考安全數據行工作的關聯性,前提是數據行位於的數據表 安全。

Power BI

參考語意模型對象的視覺效果,且已設定 OLS 的視覺效果會顯示與已刪除或非現有物件的相同訊息。

在 Power BI 視覺效果中 OLS 訊息

局限性

這些 Power BI 功能不支援為一或多個資料表或資料行物件設定 OLS 的模型:

  • Q&視覺效果
  • 快速深入解析視覺效果
  • 智慧型敘事視覺效果
  • Excel 數據類型資源庫

另請參閱

角色
Roles 物件 (TMSL)
表格式模型腳本語言 (TMSL)
表格式物件模型 (TOM)