升级加密

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server 2022 Analysis Services CU1 及更高版本包括对模型数据库架构的某些写入操作的增强加密。 若要确保模型数据库使用最新的加密,必须升级这些数据库。 如果未升级加密,则会阻止某些数据库架构写入操作,例如添加新数据源或更改连接字符串,并返回错误。

注意

如果卸载了SQL SERVER CU1,则无法加载具有增强加密的新或升级的 Analysis Services 数据库。

表格模式

对于兼容级别为 1600 及更高级别的表格模型数据库,在某些架构写入操作期间可能会返回以下错误:

新表格数据库 '%{DatabaseName/}' 未使用最新的加密架构。请使用 EnsureProperEncryption 选项运行 RemoveDiscontinuedFeatured 命令, (或使用同一选项从备份文件还原 DB) 以升级到最新加密。

若要升级加密,请备份数据库,然后使用 EnableProperEncryption 选项进行还原,方法是在 SQL Server Management Studio 中运行以下 XMLA 命令:

<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 中运行以下 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,以升级到最新的加密。

若要升级加密,请备份数据库,然后在启用 EnsureProperEncryption 选项的情况下还原。

或者,如果数据库已加载,请在 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 2022 CU1 后的 Analysis Services 服务帐户更改过程限制

由于新设计,不支持直接更改服务帐户。

从 SQL Server 2022 CU1 开始,Analysis Services 服务器使用按服务帐户标识保护的加密密钥来加密机密项目,例如数据库连接字符串。

如果需要在不同帐户下运行的服务之间传输数据库,则必须遵循备份和还原方法。 此方法可确保在服务帐户之间实现更无缝的转换,同时保持数据的完整性。

  1. 使用 SSMS 将每个数据库备份到 .abf 文件中。

  2. 停止 SSAS 服务。

  3. 更改 SSAS 服务帐户。

  4. 删除 Data 文件夹的内容,administrators.n.xml 文件和 master.vmp 文件除外。

  5. 启动 SSAS 服务。

  6. 从备份 .abf 文件还原数据库。

实施这些步骤时要小心,以避免数据丢失或安全漏洞。 在对服务帐户或服务器配置进行重大更改之前,请始终执行数据备份并寻求系统管理员的指导。

故障排除

问题:如果未遵循上述备份/还原步骤,则更改 SQL Server 2022 Analysis Services 服务帐户可能会导致服务无法启动。

Log\msmdsrv.log 文件中的以下消息指示服务无法启动,因为服务帐户已更改:

服务器 Gen2 加密密钥不存在,但服务器程序集对象 System 设置为使用服务器 gen2 cryptokey。正在终止服务器。 (源:\?\C:\Program Files\Microsoft SQL Server\MSAS16。MSSQLSERVER\OLAP\Log\msmdsrv.log,类型: 1,类别:289,事件 ID: 0x4121005C

解决 方案: 在 msmdsrv.ini 文件中的 ConfigurationSettings>DataDir 中,确定 Data 文件夹的位置。 然后,在 “数据 ”文件夹中,删除名称包含 .asm.xml的文件,以及扩展名为 .asm 的所有文件夹。

删除文件后,重启 Analysis Services 服务。 再次自动创建 .asm 文件。

然后,必须使用 SQL Server Management Studio (SSMS) 配置以下加密属性:

  • Log\QueryLog\QueryLogConnectionString。
  • 每个数据源 ImpersonationAccount 密码或身份验证密码。

另请参阅

备份和还原 Analysis Services 数据库
表格模型的兼容性级别