共用方式為


設定服務帳戶 (Analysis Services)

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

全產品帳戶布建記載於 設定 Windows 服務帳戶和許可權中,本主題提供所有 SQL Server 服務的完整服務帳戶資訊,包括 SQL Server Analysis Services。 請參閱它以瞭解有效的帳戶類型、安裝程式指派的 Windows 許可權、檔案系統許可權、登錄許可權等等。

本主題提供 SQL Server Analysis Services 的補充資訊,包括表格式和叢集安裝所需的其他許可權。 它也涵蓋支援伺服器作業所需的許可權。 例如,您可以設定處理和查詢作業,以在服務帳戶下執行 - 在此案例中,需要額外的許可權。

此處未記載的另一個組態步驟是註冊 SQL Server Analysis Services 實例和服務帳戶的服務主體名稱(SPN)。 此步驟可在雙躍點案例中啟用從用戶端應用程式傳遞至後端數據源的傳遞驗證。 此步驟僅適用於針對 Kerberos 限制委派設定的服務。 如需進一步指示,請參閱 設定 Analysis Services for Kerberos 限制委派

登入賬戶建議

MSSQLServerOLAPService Windows 服務的啟動帳戶可以是 Windows 網域使用者帳戶、虛擬帳戶、受控服務帳戶 (MSA) 或內建帳戶,例如個別服務 SID、NetworkService 或 LocalSystem。 使用網域用戶帳戶作為服務登入帳戶 提供使用者帳戶格式的詳細數據。

在故障轉移叢集中,Analysis Services 的所有實例都應該設定為使用 Windows 網域用戶帳戶。 將相同的帳戶指派給所有實例。 如需詳細資訊,請參閱 How to Cluster Analysis Services

獨立實例應針對預設實例使用預設虛擬帳戶、NT Service\MSSQLServerOLAPService,或 NT Service\MSOLAP$具名實例的實例名稱。 此建議適用於所有伺服器模式的 Analysis Services 實例,假設操作系統的 Windows Server 2008 R2 和更新版本,以及 Analysis Services 的 SQL Server 2012 和更新版本。

將許可權授與 Analysis Services

本節說明 Analysis Services 針對本機、內部作業所需的許可權。 這些作業包括啟動可執行檔、讀取組態檔,以及從數據目錄載入資料庫。 如需設定外部數據存取許可權與其他服務和應用程式的互操作性的指引,請參閱本主題的進一步 為特定伺服器作業授與其他許可權

針對內部作業,Analysis Services 中的許可權持有者不是登入帳戶,而是由包含個別服務 SID 的安裝程式所建立的本機 Windows 安全組。 將許可權指派給安全組與舊版 Analysis Services 一致。 此外,登入帳戶可能會隨著時間而變更,但每一服務 SID 和本機安全組在伺服器安裝的存留期內都是固定的。 針對 Analysis Services,安全組比登入帳戶更適合用來保存許可權。 每當您手動將許可權授與服務實例時,無論是文件系統許可權還是 Windows 許可權,請務必將許可權授與為伺服器實例建立的本機安全組。

安全組的名稱遵循模式。 前置詞一律 SQLServerMSASUser$,後面接著計算機名稱,以實例名稱結尾。 預設實例 MSSQLSERVER。 具名實例是在安裝期間指定的名稱。

您可以在本機安全性設定中看到此安全組:

  • 執行 compmgmt.msc |本機使用者和群組 | 群組 | SQLServerMSASUser$<伺服器名稱>$MSSQLSERVER(適用於預設實例)。

  • 若要檢視其成員,請按兩下安全組。

群組的唯一成員是個別服務 SID。 就在其旁邊是登入帳戶。 登入帳戶名稱是外觀,可提供個別服務 SID 的內容。 如果您變更登入帳戶,安全組和個別服務 SID 不會變更。 只有登入帳戶標籤不同。

指派給 Analysis Services 服務帳戶的 Windows 許可權

Analysis Services 需要操作系統的許可權,才能啟動服務,以及要求系統資源。 需求會因伺服器模式和實例是否叢集而有所不同。

Analysis Services 的所有實例都需要 以服務 (SeServiceLogonRight) 許可權登入。 SQL Server 安裝程式會為您指派安裝期間所指定服務帳戶的許可權。 對於以多維度和數據採礦模式執行的伺服器,這是 Analysis Services 服務帳戶針對獨立伺服器安裝所需的唯一 Windows 許可權,而這是安裝程式為 Analysis Services 設定的唯一許可權。 針對叢集和表格式實例,必須手動新增其他 Windows 許可權。

在表格式或多維度模式中故障轉移叢集實例必須具有 增加排程優先順序 (SeIncreaseBasePriorityPrivilege)。

表格式實例會使用下列三個額外的許可權,必須在安裝實例之後手動授與。

特權 描述
增加進程工作集 (SeIncreaseWorkingSetPrivilege) 此許可權預設可透過 使用者 安全組提供給所有使用者。 如果您藉由移除此群組的許可權來鎖定伺服器,Analysis Services 可能無法啟動,記錄此錯誤:「用戶端不會保留必要的許可權」。發生此錯誤時,請將許可權授與適當的 Analysis Services 安全組,以將許可權還原至 Analysis Services。
調整進程 的記憶體配額(SeIncreaseQuotaPrivilege) 如果進程沒有足夠的資源無法完成其執行,則會使用這個許可權來要求更多記憶體,但受限於為實例建立的記憶體閾值。
鎖定記憶體中的頁面 (SeLockMemoryPrivilege) 只有在完全關閉分頁時,才需要此許可權。 根據預設,表格式伺服器實例會使用 Windows 分頁檔案,但您可以將 VertiPaqPagingPolicy 設定為 0,以防止它使用 Windows 分頁。

VertiPaqPagingPolicy 為 1(預設值),會指示表格式伺服器實例使用 Windows 分頁檔案。 配置未鎖定,可視需要讓 Windows 分頁。 因為正在使用分頁,因此不需要鎖定記憶體中的分頁。 因此,針對預設組態(其中 VertiPaqPagingPolicy = 1),您不需要 將記憶體中的鎖定頁面 許可權授與表格式實例。

VertiPaqPagingPolicy 為 0。 如果您關閉 Analysis Services 的分頁,則會鎖定配置,假設 鎖定記憶體中的分頁 許可權會授與表格式實例。 鑒於此設定和 鎖定記憶體中的頁面 許可權,Windows 無法在系統面臨記憶體壓力時分頁給 Analysis Services 的記憶體配置。 Analysis Services 依賴 鎖定記憶體中的頁面 許可權,因為 VertiPaqPagingPolicy = 0 後方強制執行。 請注意,不建議關閉 Windows 分頁。 如果允許分頁,它會增加作業記憶體不足錯誤的速率,否則可能會成功。 如需 VertiPaqPagingPolicy的詳細資訊,請參閱 記憶體屬性

若要檢視或新增服務帳戶上的 Windows 許可權

  1. 執行 GPEDIT.msc |本機計算機原則 |計算機設定 |Windows 設定 |安全性設定 |本機原則 |用戶權力指派。

  2. 檢閱包含 SQLServerMSASUser$ 的現有原則。 這是在安裝 Analysis Services 的電腦上找到的本機安全組。 Windows 許可權和檔案資料夾許可權都會授與此安全組。 按兩下 [以服務身分登入] 原則,以查看安全組在系統上的指定方式。 安全組的完整名稱會根據您是否將 Analysis Services 安裝為具名實例而有所不同。 新增帳戶許可權時,請使用這個安全組,而不是實際的服務帳戶。

  3. 若要在 GPEDIT 中新增帳戶許可權,請以滑鼠右鍵按兩下 [[增加進程工作集],然後選取 [[屬性]

  4. 點選 [[新增使用者或群組]

  5. 輸入 Analysis Services 實例的使用者群組。 請記住,服務帳戶是本機安全組的成員,要求您在本機計算機名稱前面加上作為帳戶的網域。

    下列清單顯示名為 「SQL01-WIN12」 的計算機上預設實例和名為 「Tabular」 的具名實例的兩個範例,其中計算機名稱是本機網域。

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$MSSQLSERVER

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$TABULAR

  6. 針對 針對進程調整記憶體配額,並選擇性地針對 鎖定記憶體中的頁面增加排程優先順序重複。

注意

舊版安裝程式無意中將 Analysis Services 服務帳戶新增至 效能記錄使用者 群組。 雖然已修正此瑕疵,但現有的安裝可能會有這個不必要的群組成員資格。 因為 SQL Server Analysis Services 服務帳戶不需要 效能記錄使用者 群組的成員資格,所以您可以從群組中移除它。

指派給 Analysis Services 服務帳戶的文件系統許可權

注意

如需與每個程式資料夾相關聯的許可權清單,請參閱 設定 Windows 服務帳戶和許可權

如需 IIS 組態和 SQL Server Analysis Services 的相關檔案許可權資訊,請參閱 設定 Internet Information Services 上的 Analysis Services HTTP 存取 8.0

伺服器作業所需的所有文件系統許可權,包括從指定資料資料資料夾載入和卸除資料庫所需的許可權,都會在安裝期間由SQL Server 安裝程式指派。

數據檔、程式檔可執行檔、組態檔、記錄檔和臨時檔的許可權持有者是 SQL Server 安裝程式所建立的本機安全組。

針對您安裝的每個實例,都會建立一個安全組。 安全組是以 實例命名 - 默認實例的 SQLServerMSASUser$MSSQLSERVER$MSSQLSERVER,或 SQLServerMSASUser$<servername>$<具名實例的實例名稱>。 安裝程式會布建此安全組,其中包含執行伺服器作業所需的檔案許可權。 如果您檢查 \MSAS13 的安全性許可權。MSSQLSERVER\OLAP\BIN 目錄,您會看到安全組(不是服務帳戶或其個別服務 SID)是該目錄的許可權持有者。

安全組只包含一個成員:SQL Server Analysis Services 實例啟動帳戶的個別服務安全性標識碼 (SID)。 安裝程式會將個別服務 SID 新增至本機安全組。 相較於 Database Engine,使用本機安全組及其 SID 成員資格,是 SQL Server 安裝程式佈建 Analysis Services 的方式小而明顯的差異。

如果您認為檔案許可權已損毀,請遵循下列步驟來確認服務仍已正確布建:

  1. 使用服務控制命令行工具 (sc.exe) 取得預設服務實例的 SID。

    SC showsid MSSqlServerOlapService

    針對具名實例(其中實例名稱為表格式),請使用下列語法:

    SC showsid MSOlap$Tabular

  2. 使用 計算機管理員 | 本機使用者和群組 | 群組 來檢查 SQLServerMSASUser$<servername>$<實例名稱> 安全組的成員資格。

    成員 SID 應該符合步驟 1 中的個別服務 SID。

  3. 使用 Windows Explorer | Program Files | Microsoft SQL Server |MSASxx.MSSQLServer |OLAP | bin,以確認資料夾安全性屬性已授與步驟 2 中的安全組。

注意

永遠不要移除或修改 SID。 若要還原意外刪除的個別服務 SID,請參閱 https://support.microsoft.com/kb/2620201

更多關於個別服務 SID

每個 Windows 帳戶都有相關聯的 SID,但服務也可以有 SID,因此稱為個別服務 SID。 當服務實例安裝時,會建立個別服務 SID,作為服務的唯一永久裝置。 個別服務 SID 是從服務名稱產生的本機電腦層級 SID。 在預設實例上,其使用者易記名稱是NT SERVICE\MSSQLServerOLAPService。

個別服務 SID 的優點是,它允許任意變更更廣可見的登入帳戶,而不會影響檔案許可權。 例如,假設您已安裝兩個 Analysis Services 實例,即預設實例和具名實例,這兩個實例都是在相同的 Windows 用戶帳戶下執行。 共用登入帳戶時,每個服務實例都會有唯一的個別服務 SID。 此 SID 與登入帳戶的 SID 不同。 個別服務 SID 用於檔案許可權和 Windows 許可權。 相反地,登入帳戶 SID 用於驗證和授權案例 - 不同的 SIDS,用於不同的用途。

因為 SID 是不可變的,所以不論您變更服務帳戶的頻率為何,在服務安裝期間建立的文件系統 ACL 都可以無限期使用。 作為新增的安全性措施,透過 SID 指定許可權的 ACL 可確保程式可執行檔和資料資料資料夾只能由服務的單一實例存取,即使其他服務是在相同帳戶下執行也一樣。

為特定伺服器作業授與其他 Analysis Services 許可權

SQL Server Analysis Services 會在用來啟動 SQL Server Analysis Services 的服務帳戶(或登入帳戶)安全性內容中執行一些工作,並在要求工作之使用者的安全性內容中執行其他工作。

下表描述支援以服務帳戶執行的工作所需的額外許可權。

伺服器作業 工作專案 理由
遠端存取外部關係型數據來源 建立服務帳戶的資料庫登入 處理是指從外部數據源擷取數據(通常是關係資料庫),該資料庫隨後會載入 SQL Server Analysis Services 資料庫。 擷取外部數據的其中一個認證選項是使用服務帳戶。 只有在您為服務帳戶建立資料庫登入並授與源資料庫的讀取許可權時,這個認證選項才有效。 如需此工作如何使用服務帳戶選項的詳細資訊,請參閱 設定模擬選項 (SSAS - 多維度)。 同樣地,如果使用 ROLAP 作為儲存模式,則會使用相同的模擬選項。 在此情況下,帳戶也必須具有源數據的寫入許可權,才能處理 ROLAP 分割區(也就是儲存匯總)。
DirectQuery 建立服務帳戶的資料庫登入 DirectQuery 是一項表格式功能,可用來查詢外部數據集,這些數據集太大而無法放入表格式模型內,或具有其他特性,讓 DirectQuery 比預設記憶體內部記憶體選項更適合。 DirectQuery 模式中可用的其中一個連線選項是使用服務帳戶。 同樣地,只有在服務帳戶具有目標數據源的資料庫登入和讀取許可權時,此選項才能運作。 如需此工作如何使用服務帳戶選項的詳細資訊,請參閱 設定模擬選項 (SSAS - 多維度)。 或者,目前使用者的認證可以用來擷取數據。 在大部分情況下,此選項需要雙躍點連線,因此請務必設定 Kerberos 限制委派的服務帳戶,讓服務帳戶可以將身分識別委派給下游伺服器。 如需詳細資訊,請參閱 設定 Analysis Services for Kerberos 限制委派
遠端訪問其他 SSAS 實例 將服務帳戶新增至遠端伺服器上定義的 Analysis Services 資料庫角色 遠端數據分割和參考其他遠端 SQL Server Analysis Services 實例上連結的物件,都是需要遠端電腦或裝置許可權的系統功能。 當人員建立並填入遠端數據分割,或設定連結的物件時,該作業會在目前使用者的安全性內容中執行。 如果您後續將這些作業自動化,SQL Server Analysis Services 將會在其服務帳戶的安全性內容中存取遠端實例。 若要存取 SQL Server Analysis Services 遠端實例上連結的物件,登入帳戶必須具有讀取遠端實例上適當物件的許可權,例如特定維度的讀取許可權。 同樣地,使用遠端分割區需要服務帳戶具有遠端實例的系統管理許可權。 這類許可權會授與遠端 Analysis Services 實例,並使用將允許的作業與特定對象產生關聯的角色。 如需如何授與允許處理和查詢作業的完整控制許可權的指示,請參閱 授與資料庫許可權 (Analysis Services)。 如需遠端分割區的詳細資訊,請參閱 建立和管理遠端分割區 (Analysis Services)
回寫 將服務帳戶新增至遠端伺服器上定義的 Analysis Services 資料庫角色 在用戶端應用程式中啟用時,回寫是多維度模型的一項功能,可在數據分析期間建立新的數據值。 如果在任何維度或 Cube 內啟用回寫,SQL Server Analysis Services 服務帳戶必須具有來源 SQL Server 關係資料庫中回寫數據表的寫入許可權。 如果此數據表尚未存在且需要建立,SQL Server Analysis Services 服務帳戶也必須在指定的 SQL Server 資料庫中擁有建立數據表許可權。
寫入 SQL Server 關係資料庫中的查詢記錄數據表 建立服務帳戶的資料庫登入,並在查詢記錄數據表上指派寫入許可權 您可以啟用查詢記錄,以收集資料庫數據表中的使用量數據以供後續分析。 SQL Server Analysis Services 服務帳戶必須具有指定 SQL Server 資料庫中查詢記錄數據表的寫入許可權。 如果此數據表尚未存在且需要建立,SQL Server Analysis Services 登入帳戶也必須在指定的 SQL Server 資料庫中擁有建立數據表許可權。 如需詳細資訊,請參閱使用方式優化精靈 使用方式優化精靈改善 SQL Server Analysis Services 效能Analysis Services 中的查詢記錄

設定 Windows 服務帳戶和許可權
SQL Server 服務帳戶和 Per-Service SID (部落格)
SQL Server 會使用服務 SID 來提供服務隔離(知識庫文章)
存取令牌 (MSDN)
安全性識別碼 (MSDN)
存取令牌 (維琪百科)
訪問控制清單 (維琪百科)