Invoke-SqlColumnMasterKeyRotation
Lance la rotation d’une clé principale de colonne.
Syntaxe
ByObject
Invoke-SqlColumnMasterKeyRotation
[-InputObject] <Database>
-SourceColumnMasterKeyName <String>
-TargetColumnMasterKeyName <String>
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
ByPath
Invoke-SqlColumnMasterKeyRotation
[[-Path] <String>]
-SourceColumnMasterKeyName <String>
-TargetColumnMasterKeyName <String>
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Description
L’applet de commande Invoke-SqlColumnMasterKeyRotation lance le remplacement d’une clé principale de colonne source existante par une nouvelle clé principale de colonne cible pour la fonctionnalité Always Encrypted.
L’applet de commande récupère tous les objets de clé de chiffrement de colonne qui contiennent des valeurs de clé chiffrées chiffrées avec la clé principale de colonne source spécifiée.
Ensuite, l’applet de commande déchiffre les valeurs chiffrées actuelles, chiffre à nouveau les valeurs en texte clair résultant avec la clé principale de colonne cible, puis met à jour les objets de clé de chiffrement de colonne impactés pour ajouter les nouvelles valeurs chiffrées.
Par conséquent, chaque clé de chiffrement de colonne affectée contient deux valeurs chiffrées : une produite à l’aide de la clé principale de colonne source actuelle et une autre, produite à l’aide de la clé principale de colonne cible.
Si une clé principale de colonne source ou cible est stockée dans Azure, vous devez spécifier un jeton d’authentification valide (ou des jetons) pour un coffre de clés ou un HSM managé contenant la clé. Vous pouvez également vous authentifier auprès d’Azure avec Add-SqlAzureAuthenticationContext avant d’appeler cette applet de commande.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Exemples
Exemple 1 : Lancer le processus de rotation de la clé principale de colonne.
Invoke-SqlColumnMasterKeyRotation -SourceColumnMasterKeyName "CMK1" -TargetColumnMasterKeyName "CMK2"
Cette commande lance le processus de rotation de la clé principale de colonne nommée CMK1 et la remplace par la clé principale de colonne nommée CMK2.
Exemple 2 : Lancer le processus de rotation de la clé principale de colonne avec des jetons d’authentification spécifiés
# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount
# Obtain access tokens.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token
$managedHSMAccessToken = (Get-AzAccessToken -ResourceUrl https://managedhsm.azure.net).Token
# Pass the tokens to the cmdlet.
Invoke-SqlColumnMasterKey -SourceColumnMasterKeyName CMK1 -TargetColumnMasterKeyName CMK2 -KeyVaultAccessToken $keyVaultAccessToken -ManagedHSMAccessToken $managedHSMAccessToken
L’exemple lance le processus de rotation de la clé principale de colonne nommée CMK1 et le remplace par la clé principale de colonne nommée CMK2.
Nous partons du principe que l’une des clés est stockée dans un coffre de clés et que l’autre clé est stockée dans un HSM managé dans Azure Key Vault.
Les Invoke-SqlColumnMasterKey jetons d’authentification obtenus sont utilisés pour communiquer avec le coffre de clés et les points de terminaison HSM managés.
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 DBSQL Azure Managed Instance un Service Principal ou un Managed Identity.
Le paramètre à utiliser peut être une chaîne représentant le jeton ou un PSAccessToken objet tel qu’il est retourné en exécutant Get-AzAccessToken -ResourceUrl https://database.windows.net.
Ce paramètre est nouveau dans v22 du module.
Propriétés du paramètre
| Type: | PSObject |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Encrypt
Type de chiffrement à utiliser lors de la connexion à SQL Server.
Cette valeur est mappée à la Encrypt propriété SqlConnectionEncryptOption 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Valeurs acceptées: | Mandatory, Optional, Strict |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-HostNameInCertificate
Nom d’hôte à utiliser pour valider le certificat SQL Server TLS/SSL. 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InputObject
Spécifie l’objet de base de données SQL pour lequel cette applet de commande exécute l’opération.
Propriétés du paramètre
| Type: | Database |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ByObject
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-KeyVaultAccessToken
Spécifie un jeton d’accès pour les coffres de clés dans Azure Key Vault. Utilisez ce paramètre si la clé principale de colonne actuelle et/ou cible est stockée dans un coffre de clés dans Azure Key Vault.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-ManagedHsmAccessToken
Spécifie un jeton d’accès pour les HSM managés dans Azure Key Vault. Utilisez ce paramètre si la clé principale de colonne actuelle et/ou cible est stockée dans un HSM managé dans Azure Key Vault.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ByPath
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Script
Indique que cette applet de commande exécute un script Transact-SQL qui effectue la tâche.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-SourceColumnMasterKeyName
Spécifie le nom de la clé principale de colonne source.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-TargetColumnMasterKeyName
Spécifie le nom de la clé principale de colonne cible.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.