New-SqlAzureKeyVaultColumnMasterKeySettings
创建一个 SqlColumnMasterKeySettings 对象,该对象描述存储在 Azure 密钥保管库中的非对称密钥。
语法
New-SqlAzureKeyVaultColumnMasterKeySettings
[-KeyUrl] <String>
[[-Signature] <String>]
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-AllowEnclaveComputations]
[<CommonParameters>]
说明
创建 SqlColumnMasterKeySettings 对象,该对象描述存储在密钥保管库或 Azure 密钥保管库托管 HSM 中的列主密钥。
如果使用 cmdlet 对密钥元数据进行签名,则需要为密钥保管库或托管 HSM 指定有效的身份验证令牌。 或者,在调用此 cmdlet 之前,可以使用 Add-SqlAzureAuthenticationContext 向 Azure 进行身份验证。
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
示例
示例 1:创建简单的 SqlColumnMasterKeySettings 对象
$CMKSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700'
此命令创建一个 SqlColumnMasterKeySettings 对象,该对象引用 Azure 密钥保管库中的密钥,并将结果存储在名为 $CMKSettings
示例 2:使用允许 enclave 计算的自动签名属性创建 SqlColumnMasterKeySettings
# Obtain an access token for key vaults.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token
# Pass the token to the cmdlet. It will use the token to communicate with the key vault containing the column master key to sign the column master key metadata properties.
$cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.azure.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -keyVaultAccessToken $keyVaultAccessToken
此命令创建一个 SqlColumnMasterKeySettings 对象,该对象引用密钥保管库中的密钥,并将结果存储在名为 $cmkSettings 的变量中。 键允许 enclave 计算。 由于未指定签名参数,因此 cmdlet 会自动计算签名并填充 SqlColumnMasterKeySettings 对象的 Signature 属性。
此示例演示如何获取 Azure 密钥保管库中的密钥保管库的身份验证令牌,并将其传递给 cmdlet。
示例 3:创建允许 enclave 计算的 SqlColumnMasterKeySettings 对象
# Note: actual signature truncated for brevity
$signature = "0x19BEB4F27F582F...89D5433CE9266C6F867334654BE12"
$cmkSettings = New-SqlAzureKeyVaultColumnMasterKeySettings -KeyUrl 'https://myvault.vault.contoso.net/keys/CMK/4c05f1a41b12488f9cba2ea964b6a700' -AllowEnclaveComputations -Signature $signature
此命令创建一个 SqlColumnMasterKeySettings 对象,该对象引用密钥保管库中的密钥,并将结果存储在名为 $cmkSettings 的变量中。 键允许 enclave 计算。 Key 属性的签名在 Signature 参数中指定。
参数
-AllowEnclaveComputations
指定列主密钥是否允许 enclave 计算。 如果指定了 参数,则将允许服务器端安全 enclave 对受列主密钥保护的数据执行计算。 不适用于 SQL Server 2017 及更早版本。
Type: | SwitchParameter |
Position: | 1 |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyUrl
将 Azure 密钥保管库 或托管 HSM 中的密钥的链接指定为 URL。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyVaultAccessToken
为 Azure 密钥保管库中的密钥保管库指定访问令牌。 如果指定的列主密钥存储在 Azure 密钥保管库的密钥保管库中,并且该 cmdlet 预期对密钥元数据进行签名,请使用此参数。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ManagedHsmAccessToken
指定 Azure 密钥保管库中托管 HSM 的访问令牌。 如果指定的列主密钥存储在 Azure 密钥保管库的托管 HSM 中,并且该 cmdlet 预期对密钥元数据进行签名,请使用此参数。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Signature
指定十六进制字符串,该字符串是列主密钥属性的数字签名。 客户端驱动程序可以验证签名,以确保列主密钥属性未被篡改。
仅当指定 了 AllowEnclaveComputations 时,才允许此参数。 如果指定 了 AllowEnclaveComputations ,但 未指定 Signature ,则 cmdlet 会自动计算签名并填充新的 SqlColumnMasterKeySettings 对象的 Signature 属性。
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输出
SqlColumnMasterKeySettings