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>]
[<CommonParameters>]
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<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 faz referência a 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 referenciando uma chave em um repositório de chaves do repositório de chaves com um CSP (Provedor de Serviços de Criptografia) com suporte à CAPI (API de Criptografia).
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 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.
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.
O KeyPath especifica o local da chave mestra de coluna dentro do 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 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 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 |
-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