適用於: SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
SQL Server 2022 Analysis Services (SSAS) CU1 和更新版本包含模型資料庫架構特定寫入作業的增強式加密。 從舊版 SSAS 升級時,您必須更新模型資料庫以使用最新的加密。 如果未升級加密,則會封鎖特定資料庫架構寫入作業。 例如,您無法新增資料源或改變連接字串。
謹慎
舊版 SQL Server Analysis Services 無法載入具有增強式加密的新或升級 Analysis Services 資料庫。
升級表格模型資料庫
針對 1600 和更高相容性層級的表格式模型資料庫,可以在特定架構寫入作業期間傳回下列錯誤:
「新的表格式資料庫 '%{DatabaseName/}' 未使用最新的加密架構。請使用 EnsureProperEncryption 選項執行 RemoveDiscontinuedFeatured 命令(或使用相同的選項從備份檔還原 DB),以升級至最新的加密。
若要升級加密,請備份資料庫,然後使用在 SQL Server Management Studio 中執行下列 XMLA 命令來啟用 EnsureProperEncryption 選項進行還原:
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" Transaction="false" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl100="http://schemas.microsoft.com/analysisservices/2008/engine/100">
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl922="http://schemas.microsoft.com/analysisservices/2022/engine/922">
<File>your_backup_file_pathname</File>
<AllowOverwrite>true</AllowOverwrite>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</Restore>
</Batch>
或者,如果資料庫已經載入,請在 SQL Server Management Studio 中執行下列 XML for Analysis (XMLA) 命令:
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
升級多維度模型資料庫
針對所有相容性層級的多維度模型資料庫,在特定架構寫入作業期間可以傳回下列錯誤:
「多維度資料庫 '%{DatabaseName/}' 未使用最新的加密架構。請使用 EnsureProperEncryption 選項建立備份檔,並從備份檔還原 DB,以升級至最新的加密。
若要升級加密,請備份資料庫,然後使用 EnableProperEncryption 選項進行還原。
或者,如果資料庫已經載入,請在 SQL Server Management Studio 中執行下列 XMLA 命令:
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
金鑰存留期管理
SQL Server Analysis Services 會使用資料庫加密密鑰,根據每個資料庫加密敏感數據,例如數據源認證和連接字串。 在 SSAS 2025 和更新版本中,您可以使用DBSCHEMA_CATALOGS架構數據列集來判斷模型資料庫的加密層級,以及資料庫金鑰的存留期。 檢查 ENCRYPTION_LEVEL 列,並確認加密層級是 Analysis Services 2022 CU。 檢查CRYPTOKEY_UPDATED數據行,以取得資料庫加密金鑰的建立日期或上次重新產生日期。
您可以使用 RemoveDiscontinuedFeatures 命令重新產生資料庫加密密鑰。 如同從先前所述的舊版加密升級,RemoveDiscontinuedFeatures 命令會解密安全性實體數據、產生新的資料庫加密密鑰,然後使用新的資料庫加密密鑰重新加密安全性實體數據。
<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
<DatabaseID>DatabaseName</DatabaseID>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>
服務帳戶變更程序
SQL Server Analysis Services 會使用全伺服器加密密鑰來加密每個資料庫加密密鑰。 SSAS 2022 CU1 和更新版本中的增強式加密使用資料保護 API (DPAPI) ,然後利用來自目前服務帳戶和本地機器帳戶的資訊,安全地保護及存取伺服器加密密鑰。 伺服器加密金鑰只能在本機計算機上使用相同的服務帳戶進行解密。 由於目前服務帳戶的相依性,請確定您遵循下列程式來變更 SQL Server Analysis Services 服務帳戶。
更改多維度資料庫實例的服務帳戶
如果您必須變更以多維度模式執行之伺服器實例的服務帳戶,就必須備份模型資料庫、卸載再重新安裝伺服器,然後還原模型資料庫。 此方法可確保所有可保護物件都已正確加密,包括 QueryLogConnectionString 和 ImpersonationAccount 憑證。 或者,您也可以使用 附加/卸離方法,但此方法會要求您保留現有的數據資料夾。
使用 SSMS 將每個資料庫備份到 .abf 檔案。
卸載 SSAS 伺服器實例。
刪除卸載的伺服器實例的任何剩餘部分,例如剩餘的數據資料夾或組態檔。
安裝新的 SSAS 伺服器實例,並指派新的服務帳戶。
從備份 .abf 檔案還原資料庫。
實作這些步驟時請小心,以避免數據遺失或安全性弱點。 請一律執行數據備份,並尋求系統管理員的指引,再對服務帳戶或伺服器設定進行重大變更。
變更 Tabular 實例的服務帳戶
表格式伺服器實例不需要完整伺服器重新安裝,因為表格式伺服器不會使用全伺服器 QueryLogConnectionString 或 ImpersonationAccount 認證。 即使此程式不依賴資料庫備份,您仍應該一律執行數據備份,並在對服務帳戶或伺服器設定進行大量變更之前,先向系統管理員尋求指引。
建議但選用,請使用 SSMS 將每個資料庫備份至 .abf 檔案。
卸離所有模型資料庫。
停止 SSAS 服務。
變更 SSAS 服務帳戶。
啟動 SSAS 服務。
重新附加所有模型資料庫。
將模型資料庫移至不同的伺服器實例
如果您必須在伺服器之間傳輸模型資料庫,則必須使用備份/還原或卸離/附加方法。 如需有關使用 SSMS、AMO 或 XMLA 的卸離/附加方法的詳細資訊,請參閱 移動 Analysis Services 資料庫 。
故障轉移叢集支援
具有增強式加密的 SQL Server 2025 Analysis Services 可以安裝在 Windows Server 故障轉移叢集 (WSFC) 中,以達到高可用性。 在 WSFC 環境中,所有伺服器實例都必須使用與服務帳戶相同的 Active Directory 網域用戶帳戶,才能在所有伺服器實例上解密伺服器加密密鑰。 不支援本機 Windows 帳戶、Build-In 帳戶和 Entra ID 帳戶。
備註
具有增強式加密的 SQL Server 2022 Analysis Services CU1 不提供故障轉移叢集支援。 若要受益於故障轉移叢集環境中的增強式加密,您必須升級至 SQL Server 2025 Analysis Services。
故障排除
問題: 如果未遵循上述備份/還原步驟,變更 SQL Server 2022 Analysis Services 服務帳戶可能會導致服務無法啟動。
Log\msmdsrv.log 檔案中的下列訊息表示服務無法啟動,因為服務帳戶已變更:
「Server Gen2 cryptokey 不存在,但伺服器元件對象系統會設定為使用 server gen2 cryptokey。終止伺服器。(來源:\?\C:\Program Files\Microsoft SQL Server\MSAS16。MSSQLSERVER\OLAP\Log\msmdsrv.log,類型: 1,類別: 289,事件標識符: 0x4121005C”
方案: 在 msmdsrv.ini 檔案中的 ConfigurationSettings>DataDir 裡,確認 Data 資料夾的位置。 然後在 [數據] 資料夾中,刪除名稱包含 .asm.xml的檔案,以及擴展名為 .asm 的所有資料夾。
刪除檔案之後,請重新啟動 Analysis Services 服務。 .asm 檔案會自動再次建立。
接著必須使用 SQL Server Management Studio (SSMS) 來設定下列加密屬性:
- Log\QueryLog\QueryLogConnectionString。
- 每個數據源 ImpersonationAccount 密碼或驗證密碼。