Add-SqlColumnEncryptionKeyValue
Fügt einen verschlüsselten Wert für ein vorhandenes Spaltenverschlüsselungsschlüsselobjekt in der Datenbank hinzu.
Syntax
Add-SqlColumnEncryptionKeyValue
-ColumnMasterKeyName <String>
-EncryptedValue <String>
[-Name] <String>
[-InputObject] <Database>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Add-SqlColumnEncryptionKeyValue
-ColumnMasterKeyName <String>
-EncryptedValue <String>
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Add-SqlColumnEncryptionKeyValue fügt ein Spaltenverschlüsselungsschlüsselobjekt in der Datenbank hinzu, indem ein Eintrag für einen neuen verschlüsselten Wert hinzugefügt wird. Zunächst enthält ein Spaltenverschlüsselungsschlüsselobjekt einen Eintrag, der einen verschlüsselten Wert eines Spaltenverschlüsselungsschlüssels für Always Encrypted enthält. Dieses Cmdlet fügt den zweiten verschlüsselten Werteintrag hinzu, um eine rotierende Spalte master Schlüssel zu unterstützen. Sowohl der neue als auch der anfänglich verschlüsselte Wert sollten denselben Klartextschlüssel darstellen, sie sollten jedoch mit unterschiedlichen Spaltenschlüsseln master erstellt werden.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Beispiele
Beispiel 1: Hinzufügen eines verschlüsselten Werts für einen vorhandenen Spaltenverschlüsselungsschlüssel
PS C:\> Add-SqlColumnEncryptionKeyValue -Name "CEK1" -InputObject $Database -ColumnMasterKeyName "CMK2" -ColumnEncryptionKeyCiphertext "0x016E000001630075007200720065006E00740075007300650072002F006D0079002F006200330039003900340035006200370031003100330037003700350032006400380061003100310033003900660035006200640036006400380066003700330038006600320033006200360032003000307925663D2C3E275DD272E15E606927DA4326F5735C2C8E84F91B9EFE44F503ED01C130984E83AF4513F8A4A8D0878D42364E958291AE25111A868D25B69FC5143EEC04131DA27D05F3442CB665ACB4BB3F6A7A9F07DBD5D212A772414A2CCA03BEBEB7BF0E22C644C715D739B983872AFB2D390229A0B5311BCA07E3C1D857EE8982320BBBE9382C960B9674E3CC3D618AD623D6A362BEAEF68B1B1BB49660DD643A4375A9285CD9EAA5B13BFE2792DA92025351E7B6067BA07B6178D03041F40F00D84326627094C9D6944DD912497B080058A529D2DA11C8D609604449714420B4E44ECD1EB26DEE18BF712146A51DD99A02E3D4EE692A503CF02F874497010772DE743DDFB2A74801AC9A94C876D1F93554B70CE0ECC437E7FC28BC11A08222977CDA807E256ED536C41700C631878226E513AFE1199A1DB4732F975AA09A1E75B8A19802AE018871A7A0AD5B1E29B942F30490EDABD310A4170B991EBCFDA2AFE43285D5406476204B381D8A33EEB0B967073B4C0127B1C7F0281AB310EE4B9A3C2D3EAB44A1F5D15D4739FFAEF6110ED4808446F6A05DBF4121B2B33A0AF5A457CD38F895B8F7ABDF792E3ADBC3AF55B1442625F88F80127D08DE9E4AC1BB2AAA46843A477135053CEEFA4327D8C999C16D8B49C225F34AD7588A5F9E93FB5532B1F1DC5AFB3CE23DDC8DC12327DD6B5985104D14F4A1BC0F61F0AACD"
Dieser Befehl fügt einen neuen verschlüsselten Wert für das Datenbankobjekt des Spaltenverschlüsselungsschlüssels mit dem Namen CEK1 hinzu. Der neue Wert wird mit der Spalte master Schlüssel namens CMK2 verschlüsselt.
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 Service Principal
von 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.net
zurückgegeben wird.
Dieser Parameter ist neu in v22 des Moduls.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ColumnMasterKeyName
Gibt den Namen der Spalte master Schlüssels an, der verwendet wird, um den verschlüsselten Wert zu erzeugen, den dieses Cmdlet der Datenbank hinzufügt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
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 v23+ des Moduls lautet der Standardwert "Obligatorisch", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.
Dieser Parameter ist neu in v22 des Moduls.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EncryptedValue
Gibt den verschlüsselten Wert an, den dieses Cmdlet der Datenbank hinzufügt. Sie sind dafür verantwortlich, dass der verschlüsselte Wert, sofern angegeben, mithilfe der angegebenen Spalte master Schlüssels generiert wurde.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
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 einer instance mithilfe von 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 einem für Die Verschlüsselung erzwingen aktivierten SQL Server instance herzustellen.
Dieser Parameter ist neu in v22 des Moduls.
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: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Gibt den Namen des Spaltenverschlüsselungsschlüsselobjekts an, das dieses Cmdlet ändert.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
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 den Wert dieses Parameters nicht angeben, verwendet dieses Cmdlet den aktuellen Arbeitsstandort.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Script
Gibt an, dass dieses Cmdlet ein Skript ausführt, um den Verschlüsselungsschlüsselwert der SQL-Spalte hinzuzufügen.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zur Überprüfung der Vertrauensstellung umgangen wird.
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 Breaking Change für vorhandene Skripts entsteht.
Dieser Parameter ist neu in v22 des Moduls.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Microsoft.SqlServer.Management.Smo.Database
Ausgaben
System.Object