Invoke-SqlColumnMasterKeyRotation

Initiiert die Rotation eines Spaltenhauptschlüssels.

Syntax

Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [-InputObject] <Database>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]
Invoke-SqlColumnMasterKeyRotation
      -SourceColumnMasterKeyName <String>
      -TargetColumnMasterKeyName <String>
      [-KeyVaultAccessToken <String>]
      [-ManagedHsmAccessToken <String>]
      [[-Path] <String>]
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [<CommonParameters>]

Beschreibung

Das Cmdlet Invoke-SqlColumnMasterKeyRotation initiiert das Ersetzen einer vorhandenen Quellspalte master Schlüssels durch eine neue Zielspalte master Schlüssel für das feature Always Encrypted.

Das Cmdlet ruft alle Spaltenverschlüsselungsschlüsselobjekte ab, die verschlüsselte Schlüsselwerte enthalten, die mit der angegebenen Quellspalte master Schlüssel verschlüsselt sind.

Anschließend entschlüsselt das Cmdlet die aktuellen verschlüsselten Werte, verschlüsselt die resultierenden Klartextwerte mit der Zielspalte master Schlüssel neu und aktualisiert dann die betroffenen Spaltenverschlüsselungsschlüsselobjekte, um die neuen verschlüsselten Werte hinzuzufügen.

Daher enthält jeder betroffenen Spaltenverschlüsselungsschlüssel zwei verschlüsselte Werte: einen, der mit der aktuellen Quellspalte master schlüssel erstellt wurde, und ein anderer, der mit der Zielspalte master Schlüssel erstellt wurde.

Wenn eine Quell- oder Zielspalte master Schlüssel in Azure gespeichert ist, müssen Sie ein gültiges Authentifizierungstoken (oder Token) für einen Schlüsseltresor oder ein verwaltetes HSM angeben, das den Schlüssel enthält. Alternativ können Sie sich bei Azure mit Add-SqlAzureAuthenticationContext authentifizieren, bevor Sie dieses Cmdlet aufrufen.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Beispiele

Beispiel 1: Initiieren sie den Prozess der Drehung der Spalte master Schlüssels.

Invoke-SqlColumnMasterKeyRotation -SourceColumnMasterKeyName "CMK1" -TargetColumnMasterKeyName "CMK2"

Dieser Befehl initiiert den Prozess, die Spalte master Schlüssel namens CMK1 zu rotieren und durch die Spalte master Schlüssel namens CMK2 zu ersetzen.

Beispiel 2: Initiieren des Prozesses zum Rotieren der Spalte master Schlüssels mit angegebenen Authentifizierungstoken

# 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

Im Beispiel wird der Prozess initiiert, bei dem die Spalte master Schlüssel mit dem Namen CMK1 gedreht und durch die Spalte master Schlüssel namens CMK2 ersetzt wird. Wir gehen davon aus, dass einer der Schlüssel in einem Schlüsseltresor und der andere Schlüssel in einem verwalteten HSM in Azure Key Vault gespeichert ist. Verwendet Invoke-SqlColumnMasterKey die abgerufenen Authentifizierungstoken für die Kommunikation mit Schlüsseltresor und verwalteten HSM-Endpunkten.

Parameter

-AccessToken

Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.

Dies kann z. B. verwendet werden, um eine Verbindung mit SQL Azure DB und SQL Azure Managed Instance mithilfe von oder Service Principal herzustellen Managed Identity.

Der zu verwendende Parameter kann entweder eine Zeichenfolge sein, die das Token darstellt, oder ein PSAccessToken Objekt, das durch Ausführen Get-AzAccessToken -ResourceUrl https://database.windows.netvon zurückgegeben wird.

Dieser Parameter ist in v22 des Moduls neu.

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

-Encrypt

Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.

Dieser Wert wird der Encrypt -Eigenschaft SqlConnectionEncryptOption des SqlConnection-Objekts des Microsoft.Data.SqlClient-Treibers zugeordnet.

In v22 des Moduls ist Optional der Standardwert (aus Kompatibilität mit v21). In Version 23 und höher des Moduls lautet der Standardwert "Obligatorisch", was zu einer Breaking Change für vorhandene Skripts führen kann.

Dieser Parameter ist in v22 des Moduls neu.

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

-HostNameInCertificate

Der Hostname, der beim Überprüfen des TLS/SSL-Zertifikats von SQL Server verwendet werden soll. Sie müssen diesen Parameter übergeben, wenn Ihr SQL Server instance für "Verschlüsselung erzwingen" aktiviert ist und Sie eine Verbindung mit einem instance mithilfe des Hostnamens/Kurznamens herstellen möchten. Wenn dieser Parameter ausgelassen wird, ist die Übergabe des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) an -ServerInstance erforderlich, um eine Verbindung mit einem für die Verschlüsselung erzwingen aktivierten SQL Server instance herzustellen.

Dieser Parameter ist in v22 des Moduls neu.

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

-InputObject

Gibt das SQL-Datenbankobjekt an, für das dieses Cmdlet den Vorgang ausführt.

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

-KeyVaultAccessToken

Gibt ein Zugriffstoken für Schlüsseltresore in Azure Key Vault an. Verwenden Sie diesen Parameter, wenn die aktuelle und/oder die Zielspalte master Schlüssel in einem Schlüsseltresor in Azure Key Vault gespeichert ist.

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

-ManagedHsmAccessToken

Gibt ein Zugriffstoken für verwaltete HSMs in Azure Key Vault an. Verwenden Sie diesen Parameter, wenn die aktuelle und/oder die Zielspalte master Schlüssel in einem verwalteten HSM in Azure Key Vault gespeichert ist.

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

-Path

Gibt den Pfad der SQL-Datenbank an, für die dieses Cmdlet den Vorgang ausführt.

Wenn Sie keinen Wert für diesen Parameter angeben, verwendet das Cmdlet den aktuellen Arbeitsspeicherort.

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

-Script

Gibt an, dass dieses Cmdlet ein Transact-SQL-Skript ausführt, das die Aufgabe ausführt.

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

-SourceColumnMasterKeyName

Gibt den Namen der Quellspalte master Schlüssels an.

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

-TargetColumnMasterKeyName

Gibt den Namen der Zielspalte master Schlüssels an.

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

-TrustServerCertificate

Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zum Überprüfen der Vertrauensstellung umgangen wird.

In v22 des Moduls ist $true der Standardwert (aus Kompatibilität mit v21). In Version 23 und höher des Moduls lautet der Standardwert "$false", was zu einer Breaking Change für vorhandene Skripts führen kann.

Dieser Parameter ist in v22 des Moduls neu.

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

Eingaben

Microsoft.SqlServer.Management.Smo.Database