New-SqlColumnMasterKey

Cria um objeto de chave mestra de coluna no banco de dados.

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

O cmdlet New-SqlColumnMasterKey cria uma coluna master objeto de chave no banco de dados. Uma coluna master objeto de chave captura o local de uma chave criptográfica física que se destina a ser usada como uma coluna master chave para o recurso de Always Encrypted.

Exemplos

Exemplo 1: Criar uma coluna master objeto de chave que referencia um certificado

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

O primeiro comando usa o cmdlet New-SqlCertificateStoreColumnMasterKeySettings para criar uma coluna master configurações referenciando um certificado no Repositório de Certificados do Windows e armazena o resultado na variável chamada $CmkSettings.

Exemplo 2: criar uma coluna master objeto de chave que referencie uma chave no Azure Key Vault

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

O primeiro comando usa o cmdlet New-SqlCertificateStoreColumnMasterKeySettings para criar coluna master objeto de chave referenciando uma chave no Azure Key Vault e armazena o resultado na variável chamada $CmkSettings.

Exemplo 3: Criar uma coluna master objeto de chave que referencie uma chave que dá suporte a CNG

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

O primeiro comando usa o cmdlet New-SqlCertificateStoreColumnMasterKeySettings para criar coluna master objeto de chave referenciando uma chave em um repositório de chaves que dá suporte à API de Criptografia da Próxima Geração (CNG) e armazena o resultado na variável chamada $CmkSettings.

Exemplo 4: Criar uma coluna master objeto de chave que faz referência a uma chave que dá suporte a CSP

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

O primeiro comando usa o cmdlet New-SqlCertificateStoreColumnMasterKeySettings para criar coluna master objeto de chave referenciando uma chave em um repositório de chaves de repositório de chaves com um CSP (Provedor de Serviços de Criptografia) com suporte à CAPI (API de Criptografia).

Exemplo 5: Criar uma coluna master objeto de chave que referencie um certificado, ele é assinado automaticamente e dá suporte a cálculos de enclave

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

O primeiro comando usa o cmdlet New-SqlCertificateStoreColumnMasterKeySettings para criar configurações de master de coluna que fazem referência a um certificado que dá suporte a cálculos de enclave e é armazenado no Repositório de Certificados do Windows.

Parâmetros

-AccessToken

O token de acesso usado para autenticar para SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.

Isso pode ser usado, por exemplo, para se conectar SQL Azure DB e SQL Azure Managed Instance usar um Service Principal ou um Managed Identity.

O parâmetro a ser usado pode ser uma cadeia de caracteres que representa o token ou um PSAccessToken objeto conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net.

Esse parâmetro é novo na v22 do módulo.

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

-ColumnMasterKeySettings

Especifica o objeto SqlColumnMasterKeySettings que especifica o local da coluna real master chave.

O objeto SqlColumnMasterKeySettings tem duas propriedades: KeyStoreProviderName e KeyPath.

KeyStoreProviderName especifica o nome de uma coluna master provedor de repositório de chaves, que um driver de cliente habilitado para Always Encrypted deve usar para acessar o repositório de chaves que contém a coluna master chave.

KeyPath especifica o local da coluna master chave dentro do repositório de chaves. O formato KeyPath é específico para o repositório de chaves.

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

-Encrypt

O tipo de criptografia a ser usado ao se conectar a SQL Server.

Esse valor é mapeado para a Encrypt propriedade SqlConnectionEncryptOption no objeto SqlConnection do driver Microsoft.Data.SqlClient.

Na v22 do módulo, o padrão é Optional (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será 'Obrigatório', o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

-HostNameInCertificate

O nome do host a ser usado na validação do certificado TLS/SSL do SQL Server. Você deve passar esse parâmetro se sua instância de SQL Server estiver habilitada para o Force Encryption e quiser se conectar a uma instância usando nome de host/nome curto. Se esse parâmetro for omitido, passar o FQDN (Nome de Domínio Totalmente Qualificado) para -ServerInstance será necessário para se conectar a uma instância de SQL Server habilitada para o Force Encryption.

Esse parâmetro é novo na v22 do módulo.

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

-InputObject

Especifica o objeto do banco de dados SQL, para o qual esse cmdlet executa a operação.

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

-Name

Especifica o nome da coluna master objeto de chave que esse cmdlet cria.

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

-Path

Especifica o caminho do banco de dados SQL, para o qual esse cmdlet executa a operação. Se você não especificar um valor para esse parâmetro, o cmdlet usará o local de trabalho atual.

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

-Script

Indica que esse cmdlet retorna um script Transact-SQL que executa a tarefa que esse cmdlet executa.

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

-TrustServerCertificate

Indica se o canal será criptografado ao ignorar a cadeia de certificados para validar a confiança.

Na v22 do módulo, o padrão é $true (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será '$false', o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

Entradas

Microsoft.SqlServer.Management.Smo.Database

Saídas

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey