New-SqlColumnEncryptionKey
Создает объект ключа шифрования столбца в базе данных.
Синтаксис
New-SqlColumnEncryptionKey
-ColumnMasterKeyName <String>
[-EncryptedValue <String>]
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-Name] <String>
[-InputObject] <Database>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
New-SqlColumnEncryptionKey
-ColumnMasterKeyName <String>
[-EncryptedValue <String>]
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Описание
Командлет New-SqlColumnEncryptionKey создает объект ключа шифрования столбца в базе данных. Объект ключа шифрования столбцов инкапсулирует зашифрованное значение симметричного криптографического ключа, который впоследствии можно использовать для шифрования столбцов базы данных с помощью функции Always Encrypted.
Этот командлет поддерживает два режима операции:
Если задано зашифрованное значение ключа шифрования столбца, командлет просто создает новый объект ключа шифрования столбца, инкапсулирующий указанное зашифрованное значение.
Если зашифрованное значение ключа шифрования столбца не указано, командлет сначала создает значение открытого ключа, шифрует его с указанным главным ключом столбца, а затем создает новый объект ключа шифрования столбца, инкапсулирующий созданное зашифрованное значение. В этом режиме командлет взаимодействует с хранилищем ключей, где хранится главный ключ столбца. Если ключ хранится в Azure, необходимо указать действительный маркер проверки подлинности для хранилища ключей или управляемого HSM, включающего ключ. Кроме того, вы можете пройти проверку подлинности в Azure с помощью Add-SqlAzureAuthenticationContext перед вызовом этого командлета.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Примеры
Пример 1. Создание и шифрование ключа шифрования столбцов
New-SqlColumnEncryptionKey -Name 'CEK1' -ColumnMasterKeyName 'CMK1'
Эта команда создает значение открытого текста ключа шифрования столбца, шифрует значение открытого текста с указанным главным ключом, а затем создает объект ключа шифрования столбца, инкапсулируя созданное зашифрованное значение в базе данных.
Пример 2. Создание и шифрование ключа шифрования столбца с помощью главного ключа столбца, хранящегося в хранилище ключей в Azure Key Vault.
В этом примере маркер в хранилища ключей в Azure Key Vault передается командлету.
# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount
# Obtain the access token.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token
# Pass the token to the cmdlet. It will use the token to communicate with the key vault containing the column master key.
New-SqlColumnEncryptionKey -Name 'CEK1' -ColumnMasterKeyName 'CMK1' -KeyVaultAccessToken $keyVaultAccessToken
Пример 3. Создание объекта ключа шифрования столбца для существующего зашифрованного значения ключа шифрования столбца.
New-SqlColumnEncryptionKey -Name 'CEK1' -ColumnMasterKeyName 'CMK1' -EncryptedValue '0x01700000016C006F00630061006C006D0061006300680069006E0065002F006D0079002F003200660061006600640038003100320031003400340034006500620031006100320065003000360039003300340038006100350064003400300032003300380065006600620063006300610031006300284FC4316518CF3328A6D9304F65DD2CE387B79D95D077B4156E9ED8683FC0E09FA848275C685373228762B02DF2522AFF6D661782607B4A2275F2F922A5324B392C9D498E4ECFC61B79F0553EE8FB2E5A8635C4DBC0224D5A7F1B136C182DCDE32A00451F1A7AC6B4492067FD0FAC7D3D6F4AB7FC0E86614455DBB2AB37013E0A5B8B5089B180CA36D8B06CDB15E95A7D06E25AACB645D42C85B0B7EA2962BD3080B9A7CDB805C6279FE7DD6941E7EA4C2139E0D4101D8D7891076E70D433A214E82D9030CF1F40C503103075DEEB3D64537D15D244F503C2750CF940B71967F51095BFA51A85D2F764C78704CAB6F015EA87753355367C5C9F66E465C0C66BADEDFDF76FB7E5C21A0D89A2FCCA8595471F8918B1387E055FA0B816E74201CD5C50129D29C015895CD073925B6EA87CAF4A4FAF018C06A3856F5DFB724F42807543F777D82B809232B465D983E6F19DFB572BEA7B61C50154605452A891190FB5A0C4E464862CF5EFAD5E7D91F7D65AA1A78F688E69A1EB098AB42E95C674E234173CD7E0925541AD5AE7CED9A3D12FDFE6EB8EA4F8AAD2629D4F5A18BA3DDCC9CF7F352A892D4BEBDC4A1303F9C683DACD51A237E34B045EBE579A381E26B40DCFBF49EFFA6F65D17F37C6DBA54AA99A65D5573D4EB5BA038E024910A4D36B79A1D4E3C70349DADFF08FD8B4DEE77FDB57F01CB276ED5E676F1EC973154F86'
Параметры
-AccessToken
Маркер доступа, используемый для проверки подлинности в SQL Server, в качестве альтернативы пользователю или паролю или проверке подлинности Windows.
Это можно использовать, например, для подключения к SQL Azure DB
и SQL Azure Managed Instance
с помощью Service Principal
или Managed Identity
.
Используемый параметр может быть строкой, представляющей маркер или объект PSAccessToken
, как возвращается при выполнении Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Этот параметр является новым в версии 22 модуля.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ColumnMasterKeyName
Указывает имя главного ключа столбца, который использовался для создания указанного зашифрованного значения ключа шифрования столбца или имени главного ключа столбца, используемого для создания нового зашифрованного значения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Encrypt
Тип шифрования, используемый при подключении к SQL Server.
Это значение сопоставляется со свойством Encrypt
SqlConnectionEncryptOption
в объекте SqlConnection драйвера Microsoft.Data.SqlClient.
В версии 22 модуля по умолчанию используется Optional
(для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "Обязательный", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Тип: | String |
Допустимые значения: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-EncryptedValue
Указывает шестнадцатеричную строку, которая является значением ключа шифрования зашифрованного столбца.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-HostNameInCertificate
Имя узла, используемое при проверке TLS/SSL-сертификата SQL Server. Этот параметр необходимо передать, если экземпляр SQL Server включен для принудительного шифрования и требуется подключиться к экземпляру с помощью имени узла или короткого имени. Если этот параметр опущен, передача полного доменного имени (FQDN) в -ServerInstance необходима для подключения к экземпляру SQL Server, включенного для принудительного шифрования.
Этот параметр является новым в версии 22 модуля.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Указывает объект базы данных SQL, для которого этот командлет выполняет операцию.
Тип: | Database |
Position: | 2 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-KeyVaultAccessToken
Указывает маркер доступа для хранилищ ключей в Azure Key Vault. Используйте этот параметр, если главный ключ столбца, который вы хотите использовать для шифрования нового ключа шифрования столбца, хранится в хранилище ключей в Azure Key Vault.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ManagedHsmAccessToken
Указывает маркер доступа для управляемых HSM в Azure Key Vault. Используйте этот параметр, если главный ключ столбца, который вы хотите использовать для шифрования нового ключа шифрования столбца, хранится в управляемом HSM в Azure Key Vault.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Name
Указывает имя создаваемого объекта ключа шифрования столбца.
Тип: | String |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к базе данных SQL, для которой этот командлет выполняет операцию. Если значение этого параметра не указано, командлет использует текущее рабочее расположение.
Тип: | String |
Position: | 2 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-ProgressAction
Определяет, как PowerShell реагирует на обновления хода выполнения, созданные скриптом, командлетом или поставщиком, например индикаторами хода выполнения, созданными командлетом Write-Progress. Командлет Write-Progress создает индикаторы хода выполнения, показывающие состояние команды.
Тип: | ActionPreference |
Aliases: | proga |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Script
Указывает, что этот командлет запускает скрипт Transact-SQL, выполняющий операцию.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-TrustServerCertificate
Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.
В версии 22 модуля по умолчанию используется $true
(для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет иметь значение "$false", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Microsoft.SqlServer.Management.Smo.Database
Выходные данные
SqlColumnEncryptionKey