sql server 2005 T-SQL ALTER MASTER KEY (Transact-SQL)

来源:互联网 发布:oracle和mysql的转换 编辑:程序博客网 时间:2024/04/19 21:01

更改数据库主密钥的属性。

主题链接图标 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'

指定对数据库主密钥进行加密或解密时所用的密码。

可使用 REGENERATE 选项重新创建数据库主密钥和所有受该主密钥保护的密钥。首先使用旧的主密钥对这些密钥进行解密,然后使用新的主密钥对它们进行加密。在不危及主密钥安全性的前提下,应当将这种大量消耗资源的操作安排在资源需求较低的时段执行。

当使用 FORCE 选项时,即使主密钥不可用,或者服务器不能对所有加密的私钥进行解密,该密钥重新生成的过程也会继续执行。如果主密钥无法打开,则使用 RESTORE MASTER KEY 语句从备份中还原主密钥。请仅在主密钥无法恢复或解密失败时,才使用 FORCE 选项。仅由不可恢复密钥加密的信息将会丢失。

使用 DROP ENCRYPTION BY SERVICE MASTER KEY 选项,可以删除通过服务主密钥对数据库主密钥的加密。

使用 ADD ENCRYPTION BY SERVICE MASTER KEY,可以通过服务主密钥对主密钥的副本进行加密,然后将副本存储在当前数据库和 master 中。

要求对数据库具有 CONTROL 权限。如果已使用密码对数据库主密钥进行了加密,则还需要了解该密码的相关信息。

以下示例为 AdventureWorks 创建新的数据库主密钥,并且重新加密在加密层次结构中位于该主密钥之下的密钥。

复制代码
USE AdventureWorks;
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = 'dsjdkflJ435907NnmM#sX003';
GO
 
原创粉丝点击