适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 数据库
更改非对称密钥的属性。
Note
Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。
Syntax
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'
Arguments
Asym_Key_Name
非对称密钥在数据库中所使用的名称。
删除私钥
从非对称密钥中删除私钥,但不删除公钥。
使用私钥
更改私钥的保护。
密码加密 ='strongPassword'
指定用于保护私钥的新密码。 password 必须符合运行 SQL Server 实例的计算机的 Windows 密码策略要求。 如果省略该选项,则使用数据库主密钥对私钥进行加密。
密码解密 ='oldPassword'
指定当前用于保护私钥的旧密码。 如果私钥使用数据库主密钥进行加密,则不需要指定旧密码。
Remarks
如果没有 ENCRYPTION BY PASSWORD 选项所需的数据库主密钥,并且未提供任何密码,则该操作将失败。 有关如何创建数据库主密钥的信息,请参见 CREATE MASTER KEY (Transact-SQL)。
您可以通过 ALTER ASYMMETRIC KEY 指定私钥选项来更改私钥保护,如下表所示。
| 更改其保护 | 加密依据密码 | 按密码解密 |
|---|---|---|
| 旧密码到新密码 | Required | Required |
| 密码到主密钥 | Omit | Required |
| 主密钥到密码 | Required | Omit |
必须首先打开数据库主密钥,然后才能使用它来保护私钥。 有关详细信息,请参阅OPEN MASTER KEY(Transact-SQL)。
要更改非对称密钥的所有权,请使用 ALTER AUTHORIZATION。
Permissions
如果要删除私钥,则要求对非对称密钥具有 CONTROL 权限。
Examples
A. 更改私钥的密码
以下示例更改用于保护非对称密钥 PacificSales09 的私钥的密码。 将 <new-password> 替换为高强度密码。
ALTER ASYMMETRIC KEY PacificSales09
WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = '<old-password>',
ENCRYPTION BY PASSWORD = '<new-password>');
GO
B. 从非对称密钥中删除私钥
以下示例从 PacificSales19 中删除私钥,只保留公钥。
ALTER ASYMMETRIC KEY PacificSales19 REMOVE PRIVATE KEY;
GO
C. 从私钥中删除密码保护
以下示例从私钥中删除密码保护,然后使用数据库主密钥来保护该私钥。 将 <password> 替换为高强度密码。
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<database master key password>';
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = '<password>' );
GO