共用方式為


設定服務帳戶 (Analysis Services)

設定 Windows 服務帳戶與權限>中記載如何佈建全產品帳戶,該主題提供所有 SQL Server 服務 (包括 Analysis Services) 的完整服務帳戶資訊。如需了解有效的帳戶類型、由安裝程式指派的 Windows 權限、檔案系統權限、登錄權限等,請參閱該主題。

本主題提供 Analysis Services 的補充資訊,包含表格式及叢集安裝所需的其他權限。同時也涵蓋了支援伺服器作業所需的權限。例如,您可以設定要以服務帳戶身分執行的處理及查詢作業,但您必須授與其他權限,此設定才能運作。

  • 指派給 Analysis Services 的 Windows 權限

  • 指派給 Analysis Services 的檔案系統權限

  • 授與特定伺服器作業其他權限

還有一個組態設定步驟並無記載於此,就是註冊 Analysis Services 執行個體和服務帳戶的服務主要名稱 (SPN)。此步驟可以使用戶端應用程式在雙躍點狀況中傳遞驗證到後端資料來源。此步驟僅適用於針對 Kerberos 限制委派所設定的服務。如需進一步指示,請參閱<設定 Analysis Services 進行 Kerberos 限制委派>。

登入帳戶的建議

在容錯移轉叢集中,所有 Analysis Services 執行個體都應設定為使用 Windows 網域使用者帳戶。指派相同的帳戶給所有執行個體。如需詳細資料,請參閱如何將 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。如果您接著變更登入帳戶,然後返回此頁面,您會發現安全性群組與個別服務 SID 不會變更,但登入帳戶標籤會有所不同。

指派給 Analysis Services 的 Windows 權限

Analysis Services 需要作業系統的權限,以用於服務啟動及要求系統資源。這些需求會依伺服器模式以及執行個體是否為叢集而有所不同。若您不熟悉 Windows 權限,請參閱權限 (英文) 及權限常數 (Windows) (英文) 以取得詳細資料。

所有 Analysis Services 的執行個體都需要以服務方式登入 (SeServiceLogonRight) 權限。SQL Server 安裝程式會在安裝期間,於指定的服務帳戶上為您指派權限。對於以多維度和資料採礦模式執行的伺服器而言,這是 Analysis Services 服務帳戶針對獨立伺服器安裝,唯一需要的 Windows 權限,也是安裝程式為 Analysis Services 設定的唯一權限。對於叢集和表格式執行個體而言,則必須以手動方式加入其他 Windows 權限。

容錯移轉叢集執行個體,不論是表格式或多維度模式,都必須具有增加排程優先順序 (SeIncreaseBasePriorityPrivilege)。

表格式執行個體會使用下列三個其他權限,且這些權限必須在執行個體安裝之後以手動方式授與。

增加處理工作集 (SeIncreaseWorkingSetPrivilege)

此權限預設可透過使用者安全性群組提供所有使用者使用。若您透過移除此群組的權限鎖定伺服器,Analysis Services 可能會無法啟動,並記錄此錯誤:「用戶端沒有必要的權限。」出現此錯誤時,請將權限授與正確的 Analysis Services 安全性群組,以還原 Analysis Services 的權限。

調整處理序的記憶體配額 (SeIncreaseQuotaSizePrivilege)

若處理程序的資源不足以完成此執行作業,使用此權限可要求更多記憶體 (但會根據針對執行個體所建立的記憶體臨界值)。

鎖定記憶體中的分頁 (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 執行個體的安全性群組。如前文所述,名稱由安全性群組、電腦及執行個體名稱組成。

    下列清單顯示兩個範例,包括在電腦 "MSSQLSERVER" 上的預設執行個體,以及電腦 "SQL01-WIN12" 上名為 "Tabular" 的具名執行個體,其中電腦名稱即為本機網域。

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

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

  6. 針對 [調整處理序的記憶體配額],或者也可以選擇針對 [鎖定記憶體中的分頁] 或 [增加排程優先順序] 重複一樣的步驟。

[!附註]

舊版安裝程式不慎地將 Analysis Services 服務帳戶加入至 Performance Log Users 群組。雖然這個缺失已修正,現有安裝可能有這個不必要的群組成員資格。因為 Analysis Services 服務帳戶不需要 Performance Log Users 群組的成員資格,您可以將它從這個群組移除。

指派給 Analysis Services 的檔案系統權限

[!附註]

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

如需與 IIS 組態和 Analysis Services 相關的檔案權限資訊,請參閱<設定 Internet Information Services (IIS) 7.0 上 Analysis Services 的 HTTP 存取>。

伺服器作業需要的所有檔案系統權限 (包括從指定資料夾載入及卸載資料庫所需的權限) 由 SQL Server 安裝程式在安裝期間指派。

如前文所述,資料檔案、程式檔可執行檔、組態檔案、記錄檔案及暫存檔的權限持有者是 SQL Server 安裝程式所建立的本機安全性群組。

安裝程式會針對您安裝的每個執行個體,建立一個安全性群組。安全性群組會以執行個體命名,可能是預設執行個體的 SQLServerMSASUser<伺服器名稱>$MSSQLSERVER,也可能是具名執行個體的 SQLServerMSASUser$<伺服器名稱>$<執行個體名稱>。安裝程式會為此安全性群組佈建執行伺服器作業所需的檔案權限。如果您檢查 \MSAS11.MSSQLSERVER\OLAP\BIN 目錄的安全性權限,會發現該安全性群組 (而不是登入帳戶或個別服務 SID) 即是該目錄的權限持有者。

安全性群組僅包括一名成員:Analysis Services 執行個體啟動帳戶的個別服務安全性識別碼 (SID)。安裝程式會將個別服務 SID 加入至本機安全性群組。與 Database Engine 相比,SQL Server 安裝程式佈建 Analysis Services 時使用本機安全性群組搭配其 SID 成員資格,是微小但明顯的差異。

若您認為該檔案權限已損毀,請遵循這些步驟,以確認仍可正確佈建服務:

  1. 使用服務控制命令列工具 (sc.exe),取得預設服務執行個體的 SID。

    SC showsid MSSqlServerOlapService

    針對具名執行個體 (其中執行個體名稱為 Tabular),使用此語法:

    SC showsid MSOlap$Tabular

  2. 使用 [電腦管理員] | [本機使用者和群組] | [群組] 檢查 SQLServerMSASUser$<伺服器名稱>$<執行個體名稱> 安全性群組的成員資格。

    成員 SID 應符合步驟 1 的 SID。

  3. 使用 Windows 檔案總管 | [程式檔案] | [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 會用於驗證及授權的情況;不同的 SID 會用在不同的用途。

由於 SID 為不可變,所以可以永久使用服務安裝期間建立的檔案系統 ACL,不論您是否經常變更服務帳戶。做為附加的安全性措施,透過 SID 指定權限的 ACL 可確保程式可執行檔和資料夾只由單一服務執行個體存取,即使有其他服務在相同帳戶下執行。

授與特定伺服器作業其他權限

Analysis Services 會在用以啟動 Analysis Services 之服務帳戶的安全性內容中執行一些工作,並在要求工作之使用者的安全性內容中執行其他工作。

下表描述支援以服務帳戶的身分執行工作時所需的其他權限。

伺服器作業

工作項目

理由

遠端存取外部關聯式資源來源

為服務帳戶建立資料庫登入

這個處理是指從外部資源來源 (通常是關聯式資料庫) 擷取資料,後續載入至 Analysis Services 資料庫。擷取外部資料的認證選項之一是使用服務帳戶。只有在您為服務帳戶建立資料庫登入以及授與來源資料庫的讀取權限時,這個認證選項才適用。如需有關服務帳戶選項如何用於這項工作的詳細資訊,請參閱<設定模擬選項 (SSAS - 多維度)>。同樣地,如果 ROLAP 是做為儲存模式,有相同的模擬選項可用。在此情況下,帳戶也必須具有資料來源的寫入權限,才能處理 ROLAP 資料分割 (亦即,儲存彙總)。

DirectQuery

為服務帳戶建立資料庫登入

DirectQuery 是用來查詢外部資料集的表格式功能,這些外部資料集可能因為太大,而無法納入表格式模型,或因為具有其他特性,而導致 DirectQuery 比預設的記憶體中儲存選項更適合。DirectQuery 模式可用的連接選項之一是使用服務帳戶。同樣地,只有在服務帳戶擁有資料庫登入及目標資料來源的讀取權限時,這個選項才適用。如需有關服務帳戶選項如何用於這項工作的詳細資訊,請參閱<設定模擬選項 (SSAS - 多維度)>。另外,目前使用者的認證可用來擷取資料。在大多數情況下,這個選項意味著雙躍點連接,因此務必設定服務帳戶進行 Kerberos 限制委派,讓服務帳戶得以將識別委派給下游伺服器。如需詳細資訊,請參閱<設定 Analysis Services 進行 Kerberos 限制委派>。

遠端存取其他 SSAS 執行個體

將服務帳戶加入至遠端伺服器上定義的 Analysis Services 資料庫角色

遠端資料分割以及參考其他遠端 Analysis Services 執行個體的連結物件都是需要遠端電腦或裝置權限的系統功能。當某人建立及擴展遠端資料分割,或設定連結物件時,該作業是在目前使用者的安全性內容中執行。如果您後續自動化這些作業,Analysis Services 將會在其使用者帳戶的安全性內容中存取遠端執行個體。若要在 Analysis Services 的遠端執行個體上存取連結物件,登入帳戶必須具有在遠端執行個體上讀取適當物件的權限,例如對特定維度的讀取權限。同樣地,若要使用遠端資料分割,服務帳戶也必須具有遠端執行個體的管理權限。遠端 Analysis Services 執行個體的這類權限是使用角色 (將允許的作業與特定物件產生關聯) 授與的。如需如何授與允許處理及查詢作業的完整控制權的指示,請參閱<授與資料庫權限 (Analysis Services)>。如需有關遠端資料分割的詳細資訊,請參閱<建立及管理遠端資料分割 (Analysis Services)>。

回寫

將服務帳戶加入至遠端伺服器上定義的 Analysis Services 資料庫角色

在用戶端應用程式中啟用時,回寫是在資料分析期間允許建立新資料值的多維度模型功能。如果在任何維度或 Cube 內啟用回寫,Analysis Services 服務帳戶對來源 SQL Server 關聯式資料庫中的回寫資料表,就必須有寫入權限。如果這個資料表不存在而需要建立,則 Analysis Services 服務帳戶在指定的 SQL Server 資料庫中,也必須有建立資料表的權限。

寫入至 SQL Server 關聯式資料庫的查詢記錄資料表

為服務帳戶建立資料庫登入,並指派查詢記錄資料表的寫入權限

您可以啟用查詢記錄,在資料庫資料表中收集使用量資料,以進行後續分析。Analysis Services 服務帳戶對指定的 SQL Server 資料庫中的查詢記錄資料表,必須具有寫入權限。如果這個資料表不存在而需要建立,則 Analysis Services 登入帳戶在指定的 SQL Server 資料庫中,也必須有建立資料表的權限。如需詳細資訊,請參閱<以基於使用方式的最佳化精靈改善 SQL Server Analysis Services 效能(部落格)>和<Analysis Services 查詢記錄 (部落格)>。

請參閱

參考

設定 Windows 服務帳戶與權限

其他資源

SQL Server 服務帳戶和個別服務 SID (部落格)

SQL Server 使用服務 SID 來提供服務隔離 (知識庫文件)

存取權杖 (MSDN)

安全性識別碼 (MSDN)

存取權杖 (Wikipedia)

存取控制清單 (Wikipedia)