New-SqlColumnMasterKey

Создает объект главного ключа столбца в базе данных.

Синтаксис

New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [-InputObject] <Database>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]
New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]

Описание

Командлет New-SqlColumnMasterKey создает столбец master объект ключа в базе данных. Объект ключа столбца master фиксирует расположение физического криптографического ключа, который предназначен для использования в качестве ключа столбца master для функции Always Encrypted.

Примеры

Пример 1. Создание столбца master объекта ключа, который ссылается на сертификат

$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420'
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings

Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания столбца master параметров, ссылающихся на сертификат в хранилище сертификатов Windows, и сохраняет результат в переменной с именем $CmkSettings.

Пример 2. Создание объекта ключа master столбца, который ссылается на ключ в Azure Key Vault

$CmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings

Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания столбца master объекта ключа, ссылающегося на ключ в Azure Key Vault, и сохраняет результат в переменной с именем $CmkSettings.

Пример 3. Создание столбца master объекта ключа, который ссылается на ключ, поддерживающий CNG

$CmkSettings = New-SqlCngColumnMasterKeySettings -CngProviderName 'Microsoft Software Key Storage Provider' -KeyName 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings

Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания столбца master объекта ключа, ссылающегося на ключ в хранилище ключей, поддерживающем API шифрования следующего поколения (CNG), и сохраняет результат в переменной с именем $CmkSettings.

Пример 4. Создание столбца master объекта ключа, который ссылается на ключ, поддерживающий CSP

$CmkSettings = New-SqlCspColumnMasterKeySettings 'MyCspProvider' 'AlwaysEncryptedKey'
New-SqlColumnMasterKey 'CMK1' -ColumnMasterKeySettings $CmkSettings

Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания столбца master объекта ключа, ссылающегося на ключ в хранилище ключей с помощью поставщика служб шифрования (CSP), поддерживающего API шифрования (CAPI).

Пример 5. Создание столбца master объект ключа, который ссылается на сертификат, он автоматически подписывается и поддерживает вычисления анклава

$CmkSettings = New-SqlCertificateStoreColumnMasterKeySettings -CertificateStoreLocation 'CurrentUser' -CertificateThumbprint 'f2260f28d909d21c642a3d8e0b45a830e79a1420' -AllowEnclaveComputations
New-SqlColumnMasterKey -Name 'CMK1' -ColumnMasterKeySettings $CmkSettings

Первая команда использует командлет New-SqlCertificateStoreColumnMasterKeySettings для создания параметров столбцов master, ссылающихся на сертификат, который поддерживает вычисления анклава и хранится в хранилище сертификатов 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 модуля.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ColumnMasterKeySettings

Задает объект SqlColumnMasterKeySettings, указывающий расположение фактического ключа столбца master.

Объект SqlColumnMasterKeySettings имеет два свойства: KeyStoreProviderName и KeyPath.

KeyStoreProviderName указывает имя столбца, master поставщика хранилища ключей, который драйвер клиента с поддержкой Always Encrypted должен использовать для доступа к хранилищу ключей, содержаму ключ столбца master.

KeyPath указывает расположение master ключа столбца в хранилище ключей. Формат KeyPath зависит от хранилища ключей.

Type:SqlColumnMasterKeySettings
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

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

Это значение сопоставляется со свойством EncryptSqlConnectionEncryptOption объекта 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:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

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

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:2
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

-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

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

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey