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 コマンドレットは、データベースに列マスター キー オブジェクトを作成します。 列マスター キー オブジェクトは、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 コマンドレットを使用して、Cryptography Next Generation (CNG) API をサポートするキー ストア内のキーを参照する列マスター キー オブジェクトを作成し、 という名前 $CmkSettingsの変数に結果を格納します。

例 4: CSP をサポートするキーを参照する列マスター キー オブジェクトを作成する

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

最初のコマンドでは 、New-SqlCertificateStoreColumnMasterKeySettings コマンドレットを使用して、Cryptography API (CAPI) をサポートする暗号化サービス プロバイダー (CSP) を使用してキー ストア キー ストア内のキーを参照する列マスター キー オブジェクトを作成します。

例 5: 証明書を参照する列マスター キー オブジェクトを作成し、自動署名され、エンクレーブ計算をサポートする

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

最初のコマンドでは、 New-SqlCertificateStoreColumnMasterKeySettings コマンドレットを使用して、エンクレーブ計算をサポートし、Windows 証明書ストアに格納されている証明書を参照する列マスター設定を作成します。

パラメーター

-AccessToken

ユーザー/パスワードまたは Windows 認証の代わりに、SQL Serverに対する認証に使用されるアクセス トークン。

これは、たとえば、 または を使用して にSQL Azure DB接続したりSQL Azure Managed Instance、 を使用したりManaged Identityするために使用Service Principalできます。

使用するパラメーターには、 を実行Get-AzAccessToken -ResourceUrl https://database.windows.netして返されるトークンまたはオブジェクトをPSAccessToken表す文字列を指定できます。

このパラメーターは、モジュールの v22 の新機能です。

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

-ColumnMasterKeySettings

実際の列マスター キーの場所を指定する SqlColumnMasterKeySettings オブジェクトを指定します。

SqlColumnMasterKeySettings オブジェクトには、KeyStoreProviderNameKeyPath の 2 つのプロパティがあります。

KeyStoreProviderName は、列マスター キー ストア プロバイダーの名前を指定します。この名前は、Always Encrypted対応クライアント ドライバーが列マスター キーを含むキー ストアにアクセスするために使用する必要があります。

KeyPath は、キー ストア内の列マスター キーの場所を指定します。 KeyPath 形式はキー ストアに固有です。

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

-Encrypt

SQL Serverに接続するときに使用する暗号化の種類。

この値は、 Encrypt Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの プロパティ SqlConnectionEncryptOption にマップされます。

モジュールの v22 では、既定値は Optional (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "必須" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

SQL Server TLS/SSL 証明書の検証に使われるホスト名。 SQL Server インスタンスで Force Encryption が有効になっており、hostname/shortname を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっているSQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。

このパラメーターは、モジュールの v22 の新機能です。

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

このコマンドレットで作成する列マスター キー オブジェクトの名前を指定します。

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

信頼を検証するために証明書チェーンの歩き方をバイパスしながらチャネルを暗号化するかどうかを示します。

モジュールの v22 では、既定値は $true (v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "$false" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。

このパラメーターは、モジュールの v22 の新機能です。

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