ALTER CERTIFICATE (Transact-SQL)
更新日期: 2006 年 12 月 12 日
更改用于加密证书的私钥,如果不存在则添加私钥。更改证书对于 Service Broker 的可用性。
语法
ALTER CERTIFICATE certificate_name REMOVE PRIVATE KEY | WITH PRIVATE KEY ( <private_key_spec> [ ,... ] ) | WITH ACTIVE FOR BEGIN_DIALOG = [ ON | OFF ] <private_key_spec> ::= FILE = 'path_to_private_key' | DECRYPTION BY PASSWORD = 'key_password' | ENCRYPTION BY PASSWORD = 'password'
参数
- certificate_name
在数据库中标识证书的唯一名称。
- FILE ='path_to_private_key'
指定私钥的完整路径(包括文件名)。此参数可以是本地路径或网络位置的 UNC 路径。将在 SQL Server 服务帐户的安全上下文中访问此文件。使用此选项时,必须确保服务帐户有权访问指定的文件。
- DECRYPTION BY PASSWORD**='key_password'**
指定解密私钥所需的密码。
- ENCRYPTION BY PASSWORD ='password'
指定用于对数据库中的证书私钥进行加密的密码。此密码受密码复杂性策略约束。有关详细信息,请参阅密码策略。
- REMOVE PRIVATE KEY
指定私钥不应再保留在数据库内。
- ACTIVE FOR BEGIN_DIALOG = { ON | OFF }
使证书可用于 Service Broker 对话会话的发起方。
备注
私钥必须与 certificate_name 指定的公钥相对应。
如果文件中的密码受空密码保护,则可省略 DECRYPTION BY PASSWORD 子句。
在从文件中导入数据库已存在的证书私钥时,该私钥将自动受到数据库主密钥的保护。若要使用密码保护私钥,请使用 ENCRYPTION BY PASSWORD 短语。
REMOVE PRIVATE KEY 选项将从数据库中删除证书的私钥。当使用证书来验证签名或在不需要私钥的 Service Broker 方案中时,可以执行此操作。请勿删除保护对称密钥的证书的私钥。
如果使用数据库主密钥加密私钥,则不必指定解密密码。
重要提示: |
---|
从数据库删除私钥前,始终对其建立存档副本。有关详细信息,请参阅 BACKUP CERTIFICATE (Transact-SQL)。 |
权限
需要对证书具有 ALTER 权限。
示例
A. 更改证书的密码
ALTER CERTIFICATE Shipping04
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'pGF$5DGvbd2439587y',
ENCRYPTION BY PASSWORD = '4-329578thlkajdshglXCSgf');
GO
B. 更改用于加密私钥的密码
ALTER CERTIFICATE Shipping11
WITH PRIVATE KEY (ENCRYPTION BY PASSWORD = '34958tosdgfkh##38',
DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%');
GO
C. 为数据库中已存在的证书导入私钥
ALTER CERTIFICATE Shipping13
WITH PRIVATE KEY (FILE = 'c:\\importedkeys\Shipping13',
DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');
GO
D. 将私钥保护从密码更改为数据库主密钥
ALTER CERTIFICATE Shipping15
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');
GO
请参阅
参考
CREATE CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
EVENTDATA (Transact-SQL)