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


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.

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