Freigeben über


New-SqlColumnMasterKey

Erstellt ein Spaltenmasterschlüsselobjekt in der Datenbank.

Syntax

ByObject

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

ByPath

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

Beschreibung

Das Cmdlet New-SqlColumnMasterKey erstellt ein Spaltenmasterschlüsselobjekt in der Datenbank. Ein Spaltenmasterschlüsselobjekt erfasst den Speicherort eines physischen kryptografischen Schlüssels, der als Spaltenmasterschlüssel für das Feature "Immer verschlüsselt" verwendet werden soll.

Beispiele

Beispiel 1: Erstellen eines Spaltenmasterschlü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 Spaltenmastereinstellungen zu erstellen, die auf ein Zertifikat im Windows-Zertifikatspeicher verweisen, und speichert das Ergebnis in der Variablen namens $CmkSettings.

Beispiel 2: Erstellen eines Spaltenmasterschlü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 ein Spaltenmasterschlü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 eines Spaltenmasterschlü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 ein Spaltenmasterschlüsselobjekt zu erstellen, das auf einen Schlüssel in einem Schlüsselspeicher verweist, der die Cryptography Next Generation (CNG)-API unterstützt und das Ergebnis in der Variablen mit dem Namen $CmkSettingsspeichert.

Beispiel 4: Erstellen eines Spaltenmasterschlüsselobjekts, das auf einen schlüssel unterstützenden CSP verweist

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings , um ein Spaltenmasterschlüsselobjekt zu erstellen, das auf einen Schlüssel in einem Schlüsselspeicherschlüsselspeicher mit einem Kryptografiedienstanbieter (Cryptography Service Provider, CSP) verweist, der Kryptografie-API (CAPI) unterstützt.

Beispiel 5: Erstellen eines Spaltenmasterschlüsselobjekts, das auf ein Zertifikat verweist, wird es automatisch signiert und unterstützt Enklavenberechnungen.

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

Der erste Befehl verwendet das Cmdlet New-SqlCertificateStoreColumnMasterKeySettings , um Spaltenmastereinstellungen zu erstellen, die auf ein Zertifikat verweisen, das Enklavenberechnungen 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 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

-ColumnMasterKeySettings

Gibt das SqlColumnMasterKeySettings -Objekt an, das die Position des tatsächlichen Spaltenmasterschlüssels angibt.

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

KeyStoreProviderName gibt den Namen eines Spaltenmasterschlüsselspeicheranbieters an, den ein Always Encrypted-enabled-Clienttreiber verwenden muss, um auf den Schlüsselspeicher zuzugreifen, der den Spaltenmasterschlüssel enthält.

KeyPath gibt den Speicherort des Spaltenmasterschlüssels im Schlüsselspeicher an. Das KeyPath-Format ist spezifisch für den Schlüsselspeicher.

Parametereigenschaften

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

-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:2
Obligatorisch.:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Name

Gibt den Namen des Spaltenmasterschlüsselobjekts an, das dieses Cmdlet erstellt.

Parametereigenschaften

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

Parametersätze

(All)
Position:1
Obligatorisch.:True
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:2
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 zurückgibt, das die aufgabe ausführt, die dieses Cmdlet 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

-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

Ausgaben

Microsoft.SqlServer.Management.Smo.SqlColumnMasterKey