Freigeben über


Invoke-SqlColumnMasterKeyRotation

Initiiert die Drehung eines Spaltenmasterschlüssels.

Syntax

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

Beschreibung

Das cmdlet Invoke-SqlColumnMasterKeyRotation initiiert das Ersetzen eines vorhandenen Hauptschlüssels der Quellspalte durch einen neuen Hauptschlüssel für die Zielspalte für das Feature "Immer verschlüsselt".

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

Anschließend entschlüsselt das Cmdlet die aktuellen verschlüsselten Werte, verschlüsselt die resultierenden Nur-Text-Werte mit dem Hauptschlüssel der Zielspalte erneut und aktualisiert dann die betroffenen Spaltenverschlüsselungsschlüsselobjekte, um die neuen verschlüsselten Werte hinzuzufügen.

Daher enthält jeder betroffene Spaltenverschlüsselungsschlüssel zwei verschlüsselte Werte: einen, der mit dem aktuellen Quellspaltenmasterschlüssel und einem anderen erstellt wurde, der mit dem Zielspaltenmasterschlüssel erstellt wurde.

Wenn eine Quelle oder ein Zielspaltenmasterschlü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 des Drehvorgangs des Spaltenmasterschlüssels.

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

Mit diesem Befehl wird der Vorgang zum Drehen des Spaltenmasterschlüssels mit dem Namen CMK1 initiiert und durch die Spaltenmastertaste mit dem Namen CMK2 ersetzt.

Beispiel 2: Initiieren des Drehvorgangs des Spaltenmasterschlü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 Vorgang zum Drehen des Spaltenmasterschlüssels mit dem Namen CMK1 initiiert und durch die Spaltenmastertaste mit dem Namen CMK2 ersetzt. Wir gehen davon aus, dass einer der Schlüssel in einem Schlüsseltresor gespeichert wird und der andere Schlüssel in einem verwalteten HSM im Azure Key Vault gespeichert wird. Die Invoke-SqlColumnMasterKey erhaltenen Authentifizierungstoken werden verwendet, um mit Schlüsseltresor- und verwalteten HSM-Endpunkten zu kommunizieren.

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 einer SQL Azure Managed Instance oder einer Service PrincipalManaged 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.netzurückgegeben wird.

Dieser Parameter ist neu in v22 des Moduls.

Parametereigenschaften

Typ:PSObject
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Encrypt

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

Dieser Wert ist der Encrypt Eigenschaft SqlConnectionEncryptOption für das SqlConnection-Objekt des Microsoft.Data.SqlClient-Treibers zugeordnet.

In v22 des Moduls ist Optional der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Verpflichtend", wodurch für vorhandene Skripts eine bahnbrechende Änderung erstellt werden kann.

Dieser Parameter ist neu in v22 des Moduls.

Parametereigenschaften

Typ:String
Standardwert:None
Zulässige Werte:Mandatory, Optional, Strict
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 Ihre SQL Server-Instanz für die Erzwingungsverschlüsselung aktiviert ist und Sie eine Verbindung mit einer Instanz mit hostname/shortname herstellen möchten. Wenn dieser Parameter nicht angegeben wird, ist das Übergeben des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) an -ServerInstance erforderlich, um eine Verbindung mit einer SQL Server-Instanz herzustellen, die für die Erzwingungsverschlüsselung aktiviert ist.

Dieser Parameter ist neu in v22 des Moduls.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InputObject

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

Parametereigenschaften

Typ:Database
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByObject
Position:1
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-KeyVaultAccessToken

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

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ManagedHsmAccessToken

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

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ByPath
Position:1
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Script

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SourceColumnMasterKeyName

Gibt den Namen des Hauptschlüssels der Quellspalte an.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-TargetColumnMasterKeyName

Gibt den Namen des Hauptschlüssels der Zielspalte an.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-TrustServerCertificate

Gibt an, ob der Kanal verschlüsselt wird, während die Zertifikatkette umgangen wird, um die Vertrauensstellung zu überprüfen.

In v22 des Moduls ist $true der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine änderung für vorhandene Skripts geändert wird.

Dieser Parameter ist neu in v22 des Moduls.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch.:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

Microsoft.SqlServer.Management.Smo.Database