管理实例加密密钥 (XMLA)

您可以使用 XML for Analysis (XMLA) 中的 SetEncryptionKey 命令设置或重置 MicrosoftSQL ServerAnalysis Services 实例的实例加密密钥。

安全说明安全说明

只有服务器管理员才能运行 SetEncryptionKey 命令。

实例加密密钥只能通过用于加密密钥的同一帐户进行解密。因此,必须先解密和检索实例加密密钥,才能更改 Analysis Services 实例所使用的服务帐户,然后在更改此服务帐户后再对该实例加密密钥进行一次加密。否则,该实例将无法再对数据库加密密钥进行解密,而这样又会加密和解密数据库中存储的机密信息(例如数据源的密码)。

若要正确更改 Analysis Services 实例的服务帐户,则必须执行下列步骤:

  1. 调用 XMLA Discover 方法以解密现有的实例加密密钥并检索 DISCOVER_MASTER_KEY 架构行集。

    安全说明安全说明

    只有服务器管理员才能检索 DISCOVER_MASTER_KEY 架构行集。

  2. 更改 Analysis Services 实例的服务帐户。

  3. 使用 SetEncryptionKey 命令以通过新的服务帐户加密检索的实例加密密钥。

如果在没有首先检索实例加密密钥的情况下更改服务帐户,则 Analysis Services 实例无法再从该实例数据库中读取加密信息,且会发生错误。若要更正此问题,可将服务帐户更改回先前指定的用户帐户,然后执行上述过程来正确更改服务帐户。

指定加密密钥

SetEncryptionKey 命令的 Key 属性包含加密密钥的字符串表示形式。Key 属性应设置为 DISCOVER_MASTER_KEY 架构行集中的 KEY 列的值,在更改 Analysis Services 实例的服务帐户之前已对该架构行集进行了检索。

重置加密密钥

还可使用 SetEncryptionKey 命令重置加密密钥。若要重置加密密钥,请将 SetEncryptionKey 命令的 Reset 属性设置为 True。Analysis Services 可通过执行以下操作重置实例加密密钥:

  1. 解密实例加密密钥、数据库加密密钥以及该实例上的数据库中包含的机密信息。

  2. 更改实例加密密钥的值。

  3. 使用新的实例加密密钥对所有数据进行加密。

Analysis Services 实例的当前服务帐户用于解密旧的实例加密密钥并加密新的实例加密密钥。重置实例加密密钥时,请不要为该命令的 Key 属性指定值。

示例

说明

以下示例将实例加密密钥设置为 Key 中指定的值。

代码

<SetEncryptionKey xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
  <Key>
    BSyB3nTLvkCR3GwLwMNAyQEAAAAEAAAA/////wECAAAJZgAAAKQAAEAcOEA0JbXfBxXfL+l/0BMA
    ylnQiDhI9Fgm/QoOAR3NIikzEQPPBNOGSILZfVQqPUiBXuSBnrR/VUI6pLa9AgAFLIHedMu+QJHc
    bAvAw0DJ
  </Key>
</SetEncryptionKey>

说明

以下示例重置实例加密密钥。

代码

<SetEncryptionKey Reset="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine" />