ALTER MASTER KEY (Transact-SQL)
更改数据库主密钥的属性。
语法
ALTER MASTER KEY <alter_option>
<alter_option> ::=
<regenerate_option> | <encryption_option>
<regenerate_option> ::=
[ FORCE ] REGENERATE WITH ENCRYPTION BY PASSWORD = 'password'
<encryption_option> ::=
ADD ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
|
DROP ENCRYPTION BY { SERVICE MASTER KEY | PASSWORD = 'password' }
参数
- PASSWORD = 'password'
指定用于加密或解密数据库主密钥的密码。password 必须符合运行 SQL Server 实例的计算机的密码策略要求。
注释
可使用 REGENERATE 选项重新创建数据库主密钥和所有受该主密钥保护的密钥。首先使用旧的主密钥对这些密钥进行解密,然后使用新的主密钥对它们进行加密。在不危及主密钥安全性的前提下,应当将这种大量消耗资源的操作安排在资源需求较低的时段执行。
当使用 FORCE 选项时,即使主密钥不可用,或者服务器不能对所有加密的私钥进行解密,该密钥重新生成的过程也会继续执行。如果主密钥无法打开,则使用 RESTORE MASTER KEY 语句从备份中还原主密钥。请仅在主密钥无法恢复或解密失败时,才使用 FORCE 选项。仅由不可恢复密钥加密的信息将会丢失。
使用 DROP ENCRYPTION BY SERVICE MASTER KEY 选项,可以删除通过服务主密钥对数据库主密钥的加密。
使用 ADD ENCRYPTION BY SERVICE MASTER KEY,可以通过服务主密钥对主密钥的副本进行加密,然后将副本存储在当前数据库和 master 中。
权限
需要对数据库具有 CONTROL 权限。如果已使用密码对数据库主密钥进行了加密,则还需要了解该密码的相关信息。
示例
以下示例为 AdventureWorks2008R2 创建新的数据库主密钥,并且重新加密在加密层次结构中位于该主密钥之下的密钥。
USE AdventureWorks2008R2;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO