New-SqlColumnMasterKey

Crea un oggetto chiave master della colonna nel database.

Sintassi

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

Descrizione

Il cmdlet New-SqlColumnMasterKey crea un oggetto chiave master della colonna nel database. Un oggetto chiave master della colonna acquisisce la posizione di una chiave crittografica fisica che deve essere usata come chiave master della colonna per la funzionalità di Always Encrypted.

Esempio

Esempio 1: Creare un oggetto chiave master della colonna che fa riferimento a un certificato

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

Il primo comando usa il cmdlet New-SqlCertificateStoreColumnMasterKeySettings per creare impostazioni master della colonna che fanno riferimento a un certificato nell'archivio certificati di Windows e archivia il risultato nella variabile denominata $CmkSettings.

Esempio 2: Creare un oggetto chiave master della colonna che fa riferimento a una chiave in Azure Key Vault

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

Il primo comando usa il cmdlet New-SqlCertificateStoreColumnMasterKeySettings per creare un oggetto chiave master della colonna che fa riferimento a una chiave in Azure Key Vault e archivia il risultato nella variabile denominata $CmkSettings.

Esempio 3: Creare un oggetto chiave master della colonna che fa riferimento a una chiave che supporta CNG

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

Il primo comando usa il cmdlet New-SqlCertificateStoreColumnMasterKeySettings per creare un oggetto chiave master della colonna che fa riferimento a una chiave in un archivio chiavi che supporta l'API Cryptography Next Generation (CNG) e archivia il risultato nella variabile denominata $CmkSettings.

Esempio 4: Creare un oggetto chiave master della colonna che fa riferimento a una chiave che supporta CSP

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

Il primo comando usa il cmdlet New-SqlCertificateStoreColumnMasterKeySettings per creare un oggetto chiave master della colonna che fa riferimento a una chiave in un archivio chiavi dell'archivio chiavi con un provider di servizi di crittografia (CSP) che supporta l'API di crittografia (CAPI).

Esempio 5: Creare un oggetto chiave master della colonna che fa riferimento a un certificato, viene firmato automaticamente e supporta i calcoli dell'enclave

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

Il primo comando usa il cmdlet New-SqlCertificateStoreColumnMasterKeySettings per creare le impostazioni master della colonna che fanno riferimento a un certificato che supporta i calcoli dell'enclave e viene archiviato nell'archivio certificati di Windows.

Parametri

-AccessToken

Token di accesso usato per eseguire l'autenticazione per SQL Server, in alternativa all'autenticazione utente/password o Windows.

Può essere usato, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal oggetto o .Managed Identity

Il parametro da usare può essere una stringa che rappresenta il token o un PSAccessToken oggetto restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net.

Questo parametro è nuovo nella versione 22 del modulo.

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

-ColumnMasterKeySettings

Specifica l'oggetto SqlColumnMasterKeySettings che specifica la posizione della chiave master della colonna effettiva.

L'oggetto SqlColumnMasterKeySettings ha due proprietà: KeyStoreProviderName e KeyPath.

KeyStoreProviderName specifica il nome di un provider dell'archivio chiavi master della colonna, che deve essere usato da un driver client abilitato per la Always Encrypted per accedere all'archivio chiavi contenente la chiave master della colonna.

KeyPath specifica la posizione della chiave master della colonna all'interno dell'archivio chiavi. Il formato KeyPath è specifico dell'archivio chiavi.

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

-Encrypt

Tipo di crittografia da utilizzare per la connessione a SQL Server.

Questo valore esegue il Encrypt mapping alla proprietà SqlConnectionEncryptOption nell'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

Nella versione 22 del modulo il valore predefinito è Optional (per compatibilità con la versione 21). Nella versione 23+ del modulo il valore predefinito sarà "Obbligatorio", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

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

-HostNameInCertificate

Nome host da usare per la convalida del certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Forza crittografia e si vuole connettersi a un'istanza usando nome host/nome breve. Se questo parametro viene omesso, è necessario passare il nome di dominio completo (FQDN) a -ServerInstance per connettersi a un'istanza di SQL Server abilitata per Forza crittografia.

Questo parametro è nuovo nella versione 22 del modulo.

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

-InputObject

Specifica l'oggetto di database SQL per il quale questo cmdlet esegue l'operazione.

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

-Name

Specifica il nome dell'oggetto chiave master della colonna creato da questo cmdlet.

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

-Path

Specifica il percorso del database SQL per il quale questo cmdlet esegue l'operazione. Se non si specifica un valore per questo parametro, il cmdlet usa il percorso di lavoro corrente.

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

-Script

Indica che questo cmdlet restituisce uno script Transact-SQL che esegue l'attività eseguita da questo cmdlet.

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

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo il valore predefinito è $true (per compatibilità con la versione 21). Nella versione 23+ del modulo il valore predefinito sarà "$false", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

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

Input

Microsoft.SqlServer.Management.Smo.Database

Output

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey