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 オブジェクトには、KeyStoreProviderName と KeyPath の 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