创建数据库主密钥

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics

本文介绍了如何使用Transact-SQL在SQL Server中创建数据库主密钥。 数据库主密钥在数据库中加密其他密钥和证书。 每个数据库只需创建一次数据库主密钥,并将其备份到安全的异地位置,以便在其被删除或损坏时进行还原。

权限

需要对数据库拥有 CONTROL 权限。

创建数据库主密钥

本文中的代码示例使用 AdventureWorks2025 或 AdventureWorksDW2025 示例数据库,你可以从 GitHub 上的 Azure Data SQL Samples Repository 仓库下载这些示例数据库。

  1. 连接到你想创建数据库主密钥的 SQL Server 实例。 可以使用任何熟悉的SQL Server客户端工具连接到SQL Server实例, 例如 sqlcmd、SQL Server Management Studio (SSMS) 或 MSSQL 扩展(适用于 Visual Studio Code)。

  2. 选择强密码来加密数据库主密钥。 密码应遵循 SQL Server 默认密码策略。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 密码可最长为 128 个字符。 使用的密码应尽可能长,尽可能复杂。

  3. 在你想创建数据库主密钥的数据库上下文中,查看并运行以下 Transact-SQL 脚本。 更改密码以匹配你的环境。

    Caution

    你需要密码才能打开数据库主密钥。 确保你安全保存这个密码。

    USE AdventureWorks2025;
    GO
    
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
    
  4. 备份新创建的数据库主密钥。 更多信息请参见 “备份数据库主密钥”。