CREATE MASTER KEY (Transact-SQL)

创建数据库主密钥。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

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

语法

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'

参数

  • PASSWORD ='password'
    用于加密数据库主密钥的密码。 password 必须符合运行 SQL Server 实例的计算机的 Windows 密码策略要求。

注释

数据库主密钥是指用于保护证书私钥的对称密钥以及数据库中存在的非对称密钥。 当创建主密钥时,会使用 AES_256 算法以及用户提供的密码对其进行加密。 在 SQL Server 2008 和 SQL Server 2008 R2 中,不使用 Triple DES 算法。 若要启用主密钥的自动解密功能,将使用服务主密钥对该主密钥的副本进行加密,并将副本存储在数据库和 master 中。 通常,每当主密钥更改时,便会在不进行提示的情况下更新存储在 master 中的副本。 可以使用 ALTER MASTER KEY 的 DROP ENCRYPTION BY SERVICE MASTER KEY 选项对该默认行为进行更改。 必须使用 OPEN MASTER KEY 语句和密码打开未使用服务主密钥进行加密的主密钥。

master 中 sys.databases 目录视图的 is_master_key_encrypted_by_server 列指示是否使用服务主密钥对数据库主密钥进行加密。

可以在 sys.symmetric_keys 目录视图中查看有关数据库主密钥的信息。

重要说明重要提示

您应该使用 BACKUP MASTER KEY 备份主密钥,并将备份存储于另外一个安全的位置中。

服务主密钥和数据库主密钥是通过使用 AES-256 算法进行保护的。

权限

要求具有数据库的 CONTROL 权限。

示例

以下示例为 AdventureWorks2012 数据库创建数据库主密钥。 该密钥使用密码 23987hxJ#KL95234nl0zBe 进行加密。

USE AdventureWorks2012;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';
GO

请参阅

参考

sys.symmetric_keys (Transact-SQL)

sys.databases (Transact-SQL)

OPEN MASTER KEY (Transact-SQL)

ALTER MASTER KEY (Transact-SQL)

DROP MASTER KEY (Transact-SQL)

CLOSE MASTER KEY (Transact-SQL)

概念

加密层次结构