Поделиться через


Управление ключами шифрования экземпляров (XMLA)

В XML для аналитики (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 не сможет больше читать зашифрованные сведения из баз данных, расположенных на этом экземпляре, что приведет к ошибкам. Чтобы исправить эту проблему, можно вернуться к использовавшейся ранее учетной записи службы, а затем выполнить описанный выше процесс, чтобы изменить учетную запись службы надлежащим образом.

Указание ключа шифрования

Свойство Key команды SetEncryptionKey содержит строковое представление ключа шифрования. Свойству Key следует задать значение столбца KEY в наборе строк схемы DISCOVER_MASTER_KEY, извлеченного перед изменением учетной записи службы для экземпляра службы Analysis Services.

Сброс ключа шифрования

Также можно сбросить ключ шифрования при помощи команды SetEncryptionKey. Чтобы сбросить ключ шифрования, задайте атрибуту Reset команды SetEncryptionKey значение TRUE. Службы Analysis Services сбрасывают ключ шифрования экземпляра, выполняя следующие действия:

  1. Расшифровывают ключ шифрования экземпляра, ключи шифрования базы данных и секреты, находящиеся в базах данных на экземпляре.

  2. Изменяют значение ключа шифрования экземпляра.

  3. Шифруют все при помощи нового ключа шифрования экземпляра.

Текущая учетная запись службы для экземпляра служб Analysis Services используется для расшифровывания старого ключа шифрования экземпляра и шифрования нового. При сбросе ключа шифрования экземпляра не следует задавать значение для свойства Key этой команды.

Примеры

Description

В следующем примере ключу шифрования экземпляра задается значение, указанное в свойстве Key.

Код

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

Description

В следующем примере сбрасывается ключ шифрования экземпляра.

Код

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