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


Invoke-SqlColumnMasterKeyRotation

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

Синтаксис

ByObject

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

ByPath

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

Описание

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

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

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

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

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

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

Примеры

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

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

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

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

# 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

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

Параметры

-AccessToken

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

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

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

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

Свойства параметра

Тип:PSObject
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Encrypt

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

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

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

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

Свойства параметра

Тип:String
Default value:None
Допустимые значения:Mandatory, Optional, Strict
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-HostNameInCertificate

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

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-InputObject

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

Свойства параметра

Тип:Database
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByObject
Position:1
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-KeyVaultAccessToken

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ManagedHsmAccessToken

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

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

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

ByPath
Position:1
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Script

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-SourceColumnMasterKeyName

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-TargetColumnMasterKeyName

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-TrustServerCertificate

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

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

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

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

Microsoft.SqlServer.Management.Smo.Database