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.
Это значение сопоставляется со свойством Encrypt
SqlConnectionEncryptOption
объекта 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