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>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
New-SqlColumnMasterKey
-ColumnMasterKeySettings <SqlColumnMasterKeySettings>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<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à 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 New-SqlCertificateStoreColumnMasterKeySettings cmdlet 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 a SQL Server, come 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
o un Managed Identity
.
Il parametro da usare può essere una stringa che rappresenta il token o un oggetto PSAccessToken
restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ColumnMasterKeySettings
Specifica l'oggetto SqlColumnMasterKeySettings che specifica la posizione della chiave master della colonna effettiva.
L'oggetto SqlColumnMasterKeySettings
KeyStoreProviderName specifica il nome di un provider dell'archivio chiavi master della colonna, che deve essere usato da un driver client abilitato per 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
Tipo: | SqlColumnMasterKeySettings |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Encrypt
Tipo di crittografia da usare per la connessione a SQL Server.
Questo valore esegue il mapping alla proprietà Encrypt
SqlConnectionEncryptOption
sull'oggetto SqlConnection del driver Microsoft.Data.SqlClient.
Nella versione 22 del modulo, il valore predefinito è Optional
(per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "Obbligatorio", che potrebbe creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | String |
Valori accettati: | Mandatory, Optional, Strict |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-HostNameInCertificate
Nome host da usare per convalidare il 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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica l'oggetto di database SQL per il quale questo cmdlet esegue l'operazione.
Tipo: | Database |
Posizione: | 2 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Name
Specifica il nome dell'oggetto chiave master della colonna creato da questo cmdlet.
Tipo: | String |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 la posizione di lavoro corrente.
Tipo: | String |
Posizione: | 2 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ProgressAction
Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.
Tipo: | ActionPreference |
Alias: | proga |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Script
Indica che questo cmdlet restituisce un Transact-SQL script che esegue l'attività eseguita da questo cmdlet.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
Microsoft.SqlServer.Management.Smo.Database
Output
Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey