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