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