New-SqlColumnMasterKey

Erstellt ein Spaltenhauptschlüssel-Objekt in der Datenbank

Syntax

New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [-InputObject] <Database>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]
New-SqlColumnMasterKey
   -ColumnMasterKeySettings <SqlColumnMasterKeySettings>
   [-Name] <String>
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [<CommonParameters>]

Beschreibung

Das Cmdlet New-SqlColumnMasterKey erstellt eine Spalte master Schlüsselobjekt in der Datenbank. Eine Spalte master Schlüsselobjekt erfasst die Position eines physischen kryptografischen Schlüssels, der als Spalte master Schlüssel für das Always Encrypted-Feature verwendet werden soll.

Beispiele

Beispiel 1: Erstellen einer Spalte master Schlüsselobjekts, das auf ein Zertifikat verweist

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings, um eine Spalte master Einstellungen zu erstellen, die auf ein Zertifikat im Windows-Zertifikatspeicher verweisen, und speichert das Ergebnis in der Variablen namens $CmkSettings.

Beispiel 2: Erstellen einer Spalte master Schlüsselobjekts, das auf einen Schlüssel in Azure Key Vault verweist

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings, um eine Spalte master Schlüsselobjekt zu erstellen, das auf einen Schlüssel in Azure Key Vault verweist, und speichert das Ergebnis in der Variablen namens $CmkSettings.

Beispiel 3: Erstellen einer Spalte master Schlüsselobjekts, das auf einen Schlüssel verweist, der CNG unterstützt

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings, um eine Spalte master Schlüsselobjekt zu erstellen, das auf einen Schlüssel in einem Schlüsselspeicher verweist, der die CNG-API (Cryptography Next Generation) unterstützt, und speichert das Ergebnis in der Variablen namens $CmkSettings.

Beispiel 4: Erstellen einer Spalte master Schlüsselobjekts, das auf einen Schlüssel verweist, der CSP unterstützt

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings, um eine Spalte master Schlüsselobjekt zu erstellen, das auf einen Schlüssel in einem Schlüsselspeicher mit einem Kryptografiedienstanbieter (CSP) verweist, der die Kryptografie-API (CAPI) unterstützt.

Beispiel 5: Erstellen einer Spalte master Schlüsselobjekts, das auf ein Zertifikat verweist, automatisch signiert ist und Enclave-Berechnungen unterstützt

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings, um Spalten master Einstellungen zu erstellen, die auf ein Zertifikat verweisen, das Enclave-Berechnungen unterstützt und im Windows-Zertifikatspeicher gespeichert wird.

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.netzurü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

-ColumnMasterKeySettings

Gibt das SqlColumnMasterKeySettings-Objekt an, das den Speicherort der tatsächlichen Spalte master Schlüssels angibt.

Das SqlColumnMasterKeySettings-Objekt verfügt über zwei Eigenschaften: KeyStoreProviderName und KeyPath.

KeyStoreProviderName gibt den Namen einer Spalte master Schlüsselspeicheranbieters an, den ein Always Encrypted-aktivierter Clienttreiber verwenden muss, um auf den Schlüsselspeicher zuzugreifen, der die Spalte master Schlüssel enthält.

KeyPath gibt den Speicherort der Spalte master Schlüssels im Schlüsselspeicher an. Das KeyPath-Format ist spezifisch für den Schlüsselspeicher.

Type:SqlColumnMasterKeySettings
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

-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 der Spalte master Schlüsselobjekts an, das dieses Cmdlet erstellt.

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 keinen Wert für diesen Parameter angeben, verwendet das 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 Transact-SQL-Skript zurückgibt, das die Aufgabe ausführt, die dieses Cmdlet ausführt.

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

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey