對物件和作業的存取進行授權(Analysis Services)

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

非管理使用者透過成為一個或多個資料庫角色成員,即可存取 SQL Server Analysis Services 資料庫中的立方體、維度及挖掘模型。 SQL Server Analysis Services管理員建立這些資料庫角色,授權SQL Server Analysis Services物件的讀取或讀寫權限,並為每個角色指派Microsoft Windows使用者與群組。

SQL Server Analysis Services 透過結合該使用者或群組所屬的每個資料庫角色所關聯的權限,來判定特定 Windows 使用者或群組的有效權限。 因此,如果一個資料庫角色不賦予使用者或群組查看維度、度量或屬性的權限,但另一個資料庫角色賦予該使用者或群組權限,該使用者或群組就有權查看該物件。

重要

SQL Server Analysis Services 伺服器管理員角色的成員,以及擁有完全控制(管理員)權限的資料庫角色成員,可以存取資料庫中的所有資料與中繼資料,且不需額外權限即可查看特定物件。 此外,SQL Server Analysis Services 伺服器角色的成員無法被拒絕存取任何資料庫中的任何物件,且擁有完整控制(管理員)權限的 SQL Server Analysis Services 資料庫角色成員,也無法被拒絕存取該資料庫中的任何物件。 特定的管理作業(例如處理作業)可以透過權限較少的獨立角色來授權。 詳情請參閱 授權程序權限(分析服務 )。

列出為資料庫定義的角色

系統管理員可以在 SQL Server Management Studio 中執行簡單的 DMV 查詢,以取得伺服器上定義的所有角色清單。

  1. 在 SSMS 中,右鍵點擊資料庫並選擇 新查詢 | MDX。

  2. 輸入下列查詢,然後按 F5 來執行:

    Select * from $SYSTEM.DBSCHEMA_CATALOGS  
    

    結果包括資料庫名稱、描述、角色名稱和上次修改日期。 以這項資訊作為起點,您可以前往各個資料庫,檢查特定角色的成員資格和權限。

Analysis Services 授權的由上而下概觀

本節涵蓋設定許可權的基本工作流程。

步驟 1:伺服器管理

在第一個步驟中,決定誰將在伺服器層級擁有系統管理員許可權。 在安裝期間,安裝 SQL Server 的本機系統管理員必須將一個或多個 Windows 帳戶指定為 Analysis Services 伺服器管理員。 伺服器管理員在伺服器上具有所有可能的許可權,包括檢視、修改和刪除伺服器上任何對象的許可權,或檢視相關聯的數據。 安裝完成之後,伺服器管理員可以新增或移除帳戶,以變更此角色的成員資格。 有關此權限層級的詳細資訊,請參閱 授予分析服務實例的伺服器管理員權限 。

步驟 2:資料庫管理

接著,當你建立出表格或多維度的解決方案後,將其部署到伺服器上作為資料庫。 伺服器管理員可透過定義擁有資料庫完全控制權限的角色來委派資料庫管理任務。 此角色的成員可以處理或查詢資料庫中的物件,以及建立其他角色來存取資料庫本身內的 Cube、維度和其他物件。 欲了解更多資訊,請參閱授權資料庫權限(分析服務)。

步驟 3:為查詢和處理工作負載啟用 Cube 或模型存取權

根據預設,只有伺服器和資料庫管理員可以存取 Cube 或表格式模型。 為了讓組織內其他人也能使用這些資料結構,請指派額外角色,將 Windows 使用者與群組帳號對應到方塊或模型,並指定讀取權限。 欲了解更多資訊,請參閱 Grant Cube 或模型權限(Analysis Services)。

你可以將處理任務與其他行政功能隔離。 這種隔離機制可讓伺服器與資料庫管理員將此工作委派給其他人,或透過指定執行排程軟體的服務帳戶來設定無人值守處理。 欲了解更多資訊,請參閱授權程序權限(分析服務)。

附註

使用者不需要對底層關聯式資料庫中的關聯資料表擁有任何權限,而 SQL Server Analysis Services 從該資料庫載入資料。 他們也不需要在執行 SQL Server Analysis Services 實例的電腦上擁有任何檔案層級的權限。

步驟 4(可選):允許或拒絕存取內部方塊物件

SQL Server Analysis Services 提供設定個別物件許可權的安全性設定,包括數據模型中的維度成員和單元格。 欲了解更多資訊,請參閱「授與維度資料的自訂存取權 (Analysis Services)」和「授與儲存格資料的自訂存取權 (Analysis Services)」。

您也可以根據使用者身分識別來變更許可權。 這種變體通常稱為動態安全,並透過 使用者名稱(MDX) 函式來實作。

最佳做法

為了更好地管理權限,請採用類似以下步驟的方法:

  1. 依函式建立角色(例如 dbadmin、cubedeveloper、processadmin),這樣維護角色的人就能一眼看到角色允許的內容。 如其他地方所述,您可以在模型定義中定義角色,從而在後續的解決方案部署上保留這些角色。

  2. 在 Active Directory 建立對應的 Windows 安全群組,然後在 Active Directory 中維護該安全群組,以確保包含適當的個別帳號。 這種做法將安全群組成員的責任交給已經熟悉組織中帳戶維護工具與流程的安全專家。

  3. 在 SQL Server Management Studio 中產生腳本,以便在模型從來源檔案重新部署至伺服器時,快速復寫角色指派。 關於如何快速產生腳本,請參見 Grant Cube 或模型權限(Analysis Services)。

  4. 採用反映角色範圍和成員資格的命名慣例。 角色名稱只能在設計和管理工具中看到,因此請使用對 Cube 安全性專家有意義的命名慣例。 例如, processadmin-windowsgroup1 表示你組織中 Windows 使用者帳號屬於 windowsgroup1 安全群組的成員,擁有讀取權限及處理權限。

    包含帳戶資訊可協助您追蹤哪些帳戶用於各種角色。 由於角色是可加的,與 windowsgroup1 相關的角色合併後,構成了該安全群組成員的有效權限集。

  5. Cube 開發者需要對正在開發的模型和資料庫取得 Full Control 權限,但只有在資料庫部署到生產伺服器後才需要讀取權限。 請記得針對所有案例開發角色定義和指派,包括開發、測試和生產部署。

使用這類方法可將模型中的角色定義和角色成員資格變換降到最低,並提供角色指派的可見度,讓 Cube 許可權更容易實作和維護。

另請參閱

授予分析服務實例伺服器管理員權限
角色與權限(分析服務)
Analysis Services 支援的認證方法