Invoke-SqlColumnMasterKeyRotation

Инициирует смену главного ключа столбца.

Синтаксис

Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [-InputObject] <Database>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]
Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [[-Path] <String>]
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]

Описание

Командлет Invoke-SqlColumnMasterKeyRotation инициирует замену существующего ключа master исходного столбца новым ключом master целевого столбца для функции Always Encrypted.

Командлет извлекает все объекты ключей шифрования столбцов, содержащие зашифрованные значения ключа, зашифрованные с помощью указанного исходного столбца master ключа.

Затем командлет расшифровывает текущие зашифрованные значения, повторно шифрует полученные значения в виде открытого текста с помощью ключа master целевого столбца, а затем обновляет затронутые объекты ключей шифрования столбцов, чтобы добавить новые зашифрованные значения.

В результате каждый затронутый ключ шифрования столбца содержит два зашифрованных значения: одно создается с использованием текущего исходного столбца master ключа, а другое — с помощью ключа master целевого столбца.

Если исходный или целевой столбец master ключ хранится в Azure, необходимо указать допустимый маркер проверки подлинности (или маркеры) для хранилища ключей или управляемого модуля HSM, включающего ключ. Кроме того, вы можете пройти проверку подлинности в Azure с помощью Add-SqlAzureAuthenticationContext перед вызовом этого командлета.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Примеры

Пример 1. Запуск процесса поворота ключа столбца master.

Invoke-SqlColumnMasterKeyRotation -SourceColumnMasterKeyName "CMK1" -TargetColumnMasterKeyName "CMK2"

Эта команда инициирует процесс смены ключа master столбца с именем CMK1 и замены его ключом master столбца с именем CMK2.

Пример 2. Запуск процесса смены ключа столбца master с указанными маркерами проверки подлинности

# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount

# Obtain access tokens. 
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token  
$managedHSMAccessToken = (Get-AzAccessToken -ResourceUrl https://managedhsm.azure.net).Token  

# Pass the tokens to the cmdlet.  
Invoke-SqlColumnMasterKey -SourceColumnMasterKeyName CMK1 -TargetColumnMasterKeyName CMK2 -KeyVaultAccessToken $keyVaultAccessToken -ManagedHSMAccessToken $managedHSMAccessToken

В этом примере инициируется процесс смены ключа master столбца с именем CMK1 и его замены на ключ столбца master с именем CMK2. Предполагается, что один из ключей хранится в хранилище ключей, а другой — в управляемом HSM в Azure Key Vault. Будет использовать полученные маркеры проверки подлинности для взаимодействия с хранилищем ключей Invoke-SqlColumnMasterKey и управляемыми конечными точками HSM.

Параметры

-AccessToken

Маркер доступа, используемый для проверки подлинности для SQL Server в качестве альтернативы проверке подлинности пользователя или пароля или проверки подлинности Windows.

Это можно использовать, например, для подключения к SQL Azure DB и SQL Azure Managed Instance с помощью Service Principal или Managed Identity.

Используемый параметр может быть строкой, представляющей маркер, или объектом, PSAccessToken возвращенным при выполнении .Get-AzAccessToken -ResourceUrl https://database.windows.net

Этот параметр является новым в версии 22 модуля.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Тип шифрования, используемый при подключении к SQL Server.

Это значение сопоставляется со свойством EncryptSqlConnectionEncryptOption объекта SqlConnection драйвера Microsoft.Data.SqlClient.

В версии 22 модуля по умолчанию используется Optional значение (для совместимости с версией 21). В версии 23+ модуля значением по умолчанию будет "Обязательно", что может привести к критическому изменению для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Имя узла используется для проверки TLS/SSL-сертификата SQL Server. Этот параметр необходимо передать, если экземпляр SQL Server включен для принудительного шифрования и вы хотите подключиться к экземпляру с помощью hostname/shortname. Если этот параметр опущен, для подключения к экземпляру SQL Server, включенного для принудительного шифрования, необходимо передать полное доменное имя (FQDN) в параметр -ServerInstance.

Этот параметр является новым в версии 22 модуля.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Указывает объект базы данных SQL, для которого этот командлет выполняет операцию.

Type:Database
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyVaultAccessToken

Указывает маркер доступа для хранилищ ключей в Azure Key Vault. Используйте этот параметр, если текущий и (или) целевой столбец master ключ хранится в хранилище ключей в Azure Key Vault.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagedHsmAccessToken

Указывает маркер доступа для управляемых модулей HSM в Azure Key Vault. Используйте этот параметр, если текущий и (или) ключ целевого столбца master хранятся в управляемом HSM в Azure Key Vault.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Указывает путь к базе данных SQL, для которой этот командлет выполняет операцию.

Если значение этого параметра не указано, командлет использует текущее рабочее расположение.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

Указывает, что этот командлет выполняет скрипт Transact-SQL, выполняющий задачу.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SourceColumnMasterKeyName

Указывает имя ключа master исходного столбца.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TargetColumnMasterKeyName

Указывает имя ключа master целевого столбца.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.

В версии 22 модуля по умолчанию используется $true значение (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "$false", что может привести к критическому изменению для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

Microsoft.SqlServer.Management.Smo.Database