New-SqlColumnMasterKey

데이터베이스에 열 마스터 키 개체를 만듭니다.

Syntax

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>]

Description

New-SqlColumnMasterKey cmdlet은 데이터베이스에 키 개체를 master 열을 만듭니다. 열 master 키 개체는 Always Encrypted 기능에 대한 열 master 키로 사용하려는 실제 암호화 키의 위치를 캡처합니다.

예제

예제 1: 인증서를 참조하는 열 master 키 개체 만들기

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

첫 번째 명령은 New-SqlCertificateStoreColumnMasterKeySettings cmdlet을 사용하여 Windows 인증서 저장소에서 인증서를 참조하는 열 master 설정을 만들고 결과를 변수$CmkSettings에 저장합니다.

예제 2: Azure Key Vault 키를 참조하는 열 master 키 개체 만들기

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

첫 번째 명령은 New-SqlCertificateStoreColumnMasterKeySettings cmdlet을 사용하여 Azure Key Vault 키를 참조하는 열 master 키 개체를 만들고 결과를 라는 $CmkSettings변수에 저장합니다.

예제 3: CNG를 지원하는 키를 참조하는 열 master 키 개체 만들기

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

첫 번째 명령은 New-SqlCertificateStoreColumnMasterKeySettings cmdlet을 사용하여 CNG(Cryptography Next Generation) API를 지원하는 키 저장소의 키를 참조하는 열 master 키 개체를 만들고 결과를 변수$CmkSettings에 저장합니다.

예제 4: CSP를 지원하는 키를 참조하는 열 master 키 개체 만들기

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

첫 번째 명령은 New-SqlCertificateStoreColumnMasterKeySettings cmdlet을 사용하여 CAPI(Cryptography API)를 지원하는 CSP(Cryptography Service Provider)를 사용하여 키 저장소 키 저장소의 키를 참조하는 열 master 키 개체를 만듭니다.

예제 5: 인증서를 참조하는 열 master 키 개체 만들기, 자동 서명 및 enclave 계산 지원

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

첫 번째 명령은 New-SqlCertificateStoreColumnMasterKeySettings cmdlet을 사용하여 enclave 계산을 지원하고 Windows 인증서 저장소에 저장되는 인증서를 참조하는 열 master 설정을 만듭니다.

매개 변수

-AccessToken

사용자/암호 또는 Windows 인증 대신 SQL Server 인증하는 데 사용되는 액세스 토큰입니다.

예를 들어 또는 에 연결 SQL Azure DB 하고 를 사용하는 Service Principal 데 사용할 수 있습니다Managed IdentitySQL Azure Managed Instance.

사용할 매개 변수는 토큰을 나타내는 문자열이거나 PSAccessToken 를 실행 Get-AzAccessToken -ResourceUrl https://database.windows.net하여 반환된 개체일 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

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

-ColumnMasterKeySettings

실제 열 master 키의 위치를 지정하는 SqlColumnMasterKeySettings 개체를 지정합니다.

SqlColumnMasterKeySettings 개체에는 KeyStoreProviderNameKeyPath의 두 가지 속성이 있습니다.

KeyStoreProviderName은 Always Encrypted 지원 클라이언트 드라이버가 열 master 키가 포함된 키 저장소에 액세스하는 데 사용해야 하는 열 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 Microsoft.Data.SqlClient 드라이버의 SqlConnection 개체에 있는 속성 SqlConnectionEncryptOption 에 매핑됩니다.

모듈의 v22에서 기본값은 (v21과의 호환성을 위해)입니다 Optional . 모듈의 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 instance 사용하도록 설정되어 있고 hostname/shortname을 사용하여 instance 연결하려는 경우 이 매개 변수를 전달해야 합니다. 이 매개 변수를 생략하면 FQDN(정규화된 도메인 이름)을 -ServerInstance에 전달하여 강제 암호화를 사용하도록 설정된 SQL Server instance 연결해야 합니다.

이 매개 변수는 모듈의 v22에서 새로 추가되었습니다.

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

-InputObject

이 cmdlet이 작업을 실행하는 SQL 데이터베이스 개체를 지정합니다.

Type:Database
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

이 cmdlet에서 만드는 열 master 키 개체의 이름을 지정합니다.

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

-Path

이 cmdlet이 작업을 실행하는 SQL 데이터베이스의 경로를 지정합니다. 이 매개 변수의 값을 지정하지 않으면 cmdlet은 현재 작업 위치를 사용합니다.

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

-Script

이 cmdlet이 이 cmdlet이 수행하는 작업을 수행하는 Transact-SQL 스크립트를 반환한다는 것을 나타냅니다.

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

-TrustServerCertificate

신뢰의 유효성을 검사하기 위해 인증서 체인을 건너뛰는 동안 채널이 암호화되는지 여부를 나타냅니다.

모듈의 v22에서 기본값은 (v21과의 호환성을 위해)입니다 $true . 모듈의 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