New-SqlColumnMasterKey
Создает объект главного ключа столбца в базе данных.
Синтаксис
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[-InputObject] <Database>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Описание
Командлет New-SqlColumnMasterKey создает объект главного ключа столбца в базе данных. Объект главного ключа столбца фиксирует расположение физического криптографического ключа, который предназначен для использования в качестве главного ключа столбца для функции Always Encrypted.
Примеры
Пример 1. Создание объекта главного ключа столбца, ссылающегося на сертификат
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания главных параметров столбцов, ссылающихся на сертификат в Хранилище сертификатов Windows, и сохраняет результат в переменной с именем $CmkSettings
.
Пример 2. Создание объекта главного ключа столбца, ссылающегося на ключ в Azure Key Vault
$CmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания объекта главного ключа столбца, ссылающегося на ключ в Azure Key Vault, и сохраняет результат в переменной с именем $CmkSettings
.
Пример 3. Создание объекта главного ключа столбца, который ссылается на ключ, поддерживающий CNG
$CmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName 'Microsoft Software Key Storage Provider' -KeyName 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания объекта главного ключа столбца, ссылающегося на ключ в хранилище ключей, поддерживающего API следующего поколения шифрования (CNG), и сохраняет результат в переменной с именем $CmkSettings
.
Пример 4. Создание объекта главного ключа столбца, который ссылается на ключ, поддерживающий CSP
$CmkSettings = New-SqlCspColumnMasterKeySettings 'MyCspProvider' 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings
Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания объекта главного ключа столбца, ссылающегося на ключ в хранилище ключей хранилища ключей с помощью поставщика служб шифрования (CSP), поддерживающего API шифрования (CAPI).
Пример 5. Создание объекта главного ключа столбца, который ссылается на сертификат, он подписан автоматически и поддерживает вычисления анклава
$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420' -AllowEnclaveComputations
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings
Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания главных параметров столбцов, ссылающихся на сертификат, поддерживающий вычисления анклава и хранящийся в Хранилище сертификатов Windows.
Параметры
-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 |
-ColumnMasterKeySettings
Указывает объект SqlColumnMasterKeySettings, указывающий расположение фактического главного ключа столбца.
Объект sqlColumnMasterKeySettings имеет два свойства: KeyStoreProviderName и KeyPath.
KeyStoreProviderName указывает имя поставщика хранилища главных ключей столбца, который драйвер клиента с поддержкой Always Encrypted должен использовать для доступа к хранилищу ключей, содержаму главный ключ столбца.
KeyPath указывает расположение главного ключа столбца в хранилище ключей. Формат KeyPath зависит от хранилища ключей.
Тип: | SqlColumnMasterKeySettings |
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 |
-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 |
-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
Выходные данные
Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey