ALTER ASYMMETRIC KEY (Transact-SQL)

更改非对称密钥的属性。

主题链接图标Transact-SQL 语法约定

语法

ALTER ASYMMETRIC KEY Asym_Key_Name <alter_option>

<alter_option> ::=
    <password_change_option> 
    | 
    REMOVE PRIVATE KEY
<password_change_option> ::=
    WITH PRIVATE KEY ( <password_option> [ , <password_option> ] )
<password_option> ::=
    ENCRYPTION BY PASSWORD = 'strongPassword'
    |
    DECRYPTION BY PASSWORD = 'oldPassword'

参数

  • Asym_Key_Name
    非对称密钥在数据库中所使用的名称。

  • REMOVE PRIVATE KEY
    从非对称密钥中删除私钥,但不删除公钥。

  • WITH PRIVATE KEY
    更改私钥的保护。

  • ENCRYPTION BY PASSWORD ='stongPassword'
    指定用于保护私钥的新密码。password 必须符合运行 SQL Server 实例的计算机的 Windows 密码策略要求。如果省略该选项,则使用数据库主密钥对私钥进行加密。

  • DECRYPTION BY PASSWORD**='oldPassword'**
    指定当前用于保护私钥的旧密码。如果私钥使用数据库主密钥进行加密,则不需要指定旧密码。

注释

如果没有 ENCRYPTION BY PASSWORD 选项所需的数据库主密钥,并且未提供任何密码,则该操作将失败。有关如何创建数据库主密钥的信息,请参阅 CREATE MASTER KEY (Transact-SQL)

您可以按下表所示,指定 PRIVATE KEY 选项,然后使用 ALTER ASYMMETRIC KEY 更改私钥的保护。

更改其保护

ENCRYPTION BY PASSWORD

DECRYPTION BY PASSWORD

旧密码到新密码

需要

需要

密码到主密钥

省略

需要

主密钥到密码

需要

省略

必须首先打开数据库主密钥,然后才能使用它来保护私钥。有关详细信息,请参阅 OPEN MASTER KEY (Transact-SQL)

若要更改非对称密钥的所有权,请使用 ALTER AUTHORIZATION

权限

如果要删除私钥,则要求对非对称密钥具有 CONTROL 权限。

示例

A. 更改私钥的密码

以下示例更改用于保护非对称密钥 PacificSales09 的私钥的密码。新密码为 <enterStrongPasswordHere>。

ALTER ASYMMETRIC KEY PacificSales09 
    WITH PRIVATE KEY (
    DECRYPTION BY PASSWORD = '<oldPassword>',
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>');
GO

B. 从非对称密钥中删除私钥

以下示例从 PacificSales19 中删除私钥,只保留公钥。

ALTER ASYMMETRIC KEY PacificSales19 REMOVE PRIVATE KEY;
GO

C. 从私钥中删除密码保护

以下示例从私钥中删除密码保护,然后使用数据库主密钥来保护该私钥。

OPEN MASTER KEY;
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (
    DECRYPTION BY PASSWORD = '<enterStrongPasswordHere>' );
GO