Compartilhar via


New-SqlColumnMasterKey

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

Sintaxe

New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [-InputObject] <Database>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]
New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [<CommonParameters>]

Description

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

Exemplos

Exemplo 1: criar um objeto de chave mestra de coluna 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 mestra que referencia um certificado no Repositório de Certificados do Windows e armazena o resultado na variável chamada $CmkSettings.

Exemplo 2: Criar um objeto de chave mestra de coluna que referencia 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 um objeto de chave mestra de coluna referenciando uma chave no Azure Key Vault e armazena o resultado na variável chamada $CmkSettings.

Exemplo 3: Criar um objeto de chave mestra de coluna que referencia 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 um objeto de chave mestra de coluna referenciando uma chave em um repositório de chaves que dá suporte à API de Criptografia de Próxima Geração (CNG) e armazena o resultado na variável chamada $CmkSettings.

Exemplo 4: Criar um objeto de chave mestra de coluna que referencia 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 um objeto de chave mestra de coluna fazendo referência a uma chave em um repositório de chaves do repositório de chaves com um CSP (Provedor de Serviços de Criptografia) compatível com a CAPI (Cryptography API).

Exemplo 5: Criar um objeto de chave mestra de coluna que referencia 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 mestras de coluna referenciando 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 no SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.

Isso pode ser usado, por exemplo, para se conectar a SQL Azure DB e SQL Azure Managed Instance usando 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 objeto PSAccessToken conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net.

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

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ColumnMasterKeySettings

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

O objeto SqlColumnMasterKeySettings tem duas propriedades: KeyStoreProviderName e KeyPath.

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

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

Tipo:SqlColumnMasterKeySettings
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Encrypt

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

Esse valor é mapeado para a propriedade EncryptSqlConnectionEncryptOption 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 significativa para scripts existentes.

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

Tipo:String
Valores aceitos:Mandatory, Optional, Strict
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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 a instância do 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 do SQL Server habilitada para o Force Encryption.

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

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

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

Tipo:Database
Cargo:2
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Name

Especifica o nome do objeto de chave mestra de coluna que esse cmdlet cria.

Tipo:String
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:String
Cargo:2
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ProgressAction

Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.

Tipo:ActionPreference
Aliases:proga
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Script

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

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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 significativa para scripts existentes.

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

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Microsoft.SqlServer.Management.Smo.Database

Saídas

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey