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