Partager via


New-SqlColumnMasterKey

Crée un objet clé principale de colonne dans la base de données.

Syntaxe

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

La cmdlet New-SqlColumnMasterKey crée un objet de clé principale de colonne dans la base de données. Un objet de clé principale de colonne capture l’emplacement d’une clé de chiffrement physique destinée à être utilisée comme clé principale de colonne pour la fonctionnalité Always Encrypted.

Exemples

Exemple 1 : Créer un objet clé principale de colonne qui référence un certificat

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

La première commande utilise l’applet de commande New-SqlCertificateStoreColumnMasterKeySettings pour créer un paramètre principal de colonne référençant un certificat dans le Magasin de certificats Windows et stocke le résultat dans la variable nommée $CmkSettings.

Exemple 2 : Créer un objet de clé principale de colonne qui référence une clé dans Azure Key Vault

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

La première commande utilise l’applet de commande New-SqlCertificateStoreColumnMasterKeySettings pour créer un objet de clé principale de colonne référençant une clé dans Azure Key Vault et stocke le résultat dans la variable nommée $CmkSettings.

Exemple 3 : Créer un objet clé principale de colonne qui fait référence à une clé prenant en charge CNG

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

La première commande utilise l’applet de commande New-SqlCertificateStoreColumnMasterKeySettings pour créer un objet de clé principale de colonne référençant une clé dans un magasin de clés prenant en charge l’API Cryptography Next Generation (CNG) et stocke le résultat dans la variable nommée $CmkSettings.

Exemple 4 : Créer un objet clé principale de colonne qui référence une clé de prise en charge du fournisseur de solutions Cloud

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

La première commande utilise l’applet de commande New-SqlCertificateStoreColumnMasterKeySettings pour créer un objet de clé principale de colonne référençant une clé dans un magasin de clés de magasin de clés avec un fournisseur de services de chiffrement (CSP) prenant en charge l’API de chiffrement (CAPI).

Exemple 5 : Créer un objet clé principale de colonne qui référence un certificat, il est signé automatiquement et prend en charge les calculs d’enclave

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

La première commande utilise l’applet de commande New-SqlCertificateStoreColumnMasterKeySettings pour créer des paramètres de base de colonnes référençant un certificat prenant en charge les calculs d’enclave et stocké dans le Magasin de certificats Windows.

Paramètres

-AccessToken

Jeton d’accès utilisé pour s’authentifier auprès de SQL Server, comme alternative à l’authentification utilisateur/mot de passe ou Windows.

Cela peut être utilisé, par exemple, pour se connecter à SQL Azure DB et SQL Azure Managed Instance à l’aide d’un Service Principal ou d’un Managed Identity.

Le paramètre à utiliser peut être une chaîne représentant le jeton ou un objet PSAccessToken tel qu’il est retourné en exécutant Get-AzAccessToken -ResourceUrl https://database.windows.net.

Ce paramètre est nouveau dans v22 du module.

Type:PSObject
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ColumnMasterKeySettings

Spécifie l’objet SqlColumnMasterKeySettings qui spécifie l’emplacement de la clé principale de colonne réelle.

L’objet SqlColumnMasterKeySettings a deux propriétés : KeyStoreProviderName et KeyPath.

KeyStoreProviderName spécifie le nom d’un fournisseur de magasin de clés principales de colonne, qu’un pilote client always Encrypted doit utiliser pour accéder au magasin de clés contenant la clé principale de colonne.

KeyPath spécifie l’emplacement de la clé principale de colonne dans le magasin de clés. Le format KeyPath est spécifique au magasin de clés.

Type:SqlColumnMasterKeySettings
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Encrypt

Type de chiffrement à utiliser lors de la connexion à SQL Server.

Cette valeur est mappée à la propriété EncryptSqlConnectionEncryptOption sur l’objet SqlConnection du pilote Microsoft.Data.SqlClient.

Dans la version 22 du module, la valeur par défaut est Optional (pour la compatibilité avec v21). Dans la version 23+ du module, la valeur par défaut est « Obligatoire », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Type:String
Valeurs acceptées:Mandatory, Optional, Strict
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-HostNameInCertificate

Nom d’hôte à utiliser pour valider le certificat TLS/SSL SQL Server. Vous devez passer ce paramètre si votre instance SQL Server est activée pour Forcer le chiffrement et que vous souhaitez vous connecter à une instance à l’aide du nom d’hôte/shortname. Si ce paramètre est omis, le passage du nom de domaine complet (FQDN) à -ServerInstance est nécessaire pour se connecter à une instance SQL Server activée pour Forcer le chiffrement.

Ce paramètre est nouveau dans v22 du module.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie l’objet de base de données SQL pour lequel cette applet de commande exécute l’opération.

Type:Database
Position:2
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Name

Spécifie le nom de l’objet clé principale de colonne créé par cette applet de commande.

Type:String
Position:1
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Path

Spécifie le chemin d’accès de la base de données SQL pour laquelle cette applet de commande exécute l’opération. Si vous ne spécifiez pas de valeur pour ce paramètre, l’applet de commande utilise l’emplacement de travail actuel.

Type:String
Position:2
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ProgressAction

Détermine comment PowerShell répond aux mises à jour de progression générées par un script, une applet de commande ou un fournisseur, telles que les barres de progression générées par l’applet de commande Write-Progress. L’applet de commande Write-Progress crée des barres de progression qui affichent l’état d’une commande.

Type:ActionPreference
Alias:proga
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Script

Indique que cette applet de commande retourne un script Transact-SQL qui effectue la tâche effectuée par cette applet de commande.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TrustServerCertificate

Indique si le canal sera chiffré lors du contournement de la marche à pied de la chaîne de certificats pour valider l’approbation.

Dans la version 22 du module, la valeur par défaut est $true (pour la compatibilité avec v21). Dans v23+ du module, la valeur par défaut est « $false », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

Microsoft.SqlServer.Management.Smo.Database

Sorties

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey