BACKUP MASTER KEY (Transact-SQL)

适用于:SQL Server

导出数据库主密钥。

重要

SQL Server 2022 (16.x) 支持将数据库主密钥备份和还原到 Azure Blob 存储以及从 Azure Blob 存储备份和还原数据库主密钥。 URL 语法仅适用于 SQL Server 2022 (16.x) 及更高版本。

Transact-SQL 语法约定

语法

BACKUP MASTER KEY TO 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }   
    ENCRYPTION BY PASSWORD = 'password'  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

FILE ='path_to_file'
指定主密钥将导入的文件的完整路径(包括文件名)。 此路径可以是本地路径,也可以是网络位置的 UNC 路径。

URL =“Azure Blob 存储 URL”
适用于:SQL Server 2022 (16.x) 及更高版本
Azure Blob 存储的 URL,格式类似于 https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak

ENCRYPTION BY PASSWORD ='password'
用于加密文件中主密钥的密码。 此密码应通过复杂性检查。 有关详细信息,请参阅 Password Policy

注解

主密钥必须为打开状态,因此在备份主密钥之前应对其进行解密。 如果主密钥使用服务主密钥进行加密,则不必显式打开。 但如果主密钥仅使用密码进行加密,则必须显式打开。

在创建主密钥之后立即对其进行备份,并存储于另外一个安全的站点外位置。

对 Azure Blob 存储进行身份验证

适用于:SQL Server 2022 (16.x) 及更高版本。

若要将数据库主密钥备份到 Azure Blob 存储,则以下先决条件适用:

  1. 具有 Azure 存储账户

  2. 创建存储访问策略和共享访问存储

  3. 使用共享访问签名创建 SQL Server 凭据

    有关详细信息,请参阅教程:将 Azure Blob 存储与 SQL Server 配合使用

权限

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

示例

以下示例创建到文件的 AdventureWorks2022 主密钥备份。 由于该主密钥未使用服务主密钥进行加密,因此必须指定密码才能将其打开。

USE AdventureWorks2022;  
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sfj5300osdVdgwdfkli7';  
BACKUP MASTER KEY TO FILE = 'c:\temp\AdventureWorks2022_master_key'   
    ENCRYPTION BY PASSWORD = 'sd092735kjn$&adsg';  
GO   

以下示例创建到 Azure Blob 存储的 AdventureWorks2022 主密钥备份。 由于该主密钥未使用服务主密钥进行加密,因此必须指定密码才能将其打开。

USE AdventureWorks2022;  
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sfj5300osdVdgwdfkli7';  
BACKUP MASTER KEY TO URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'  
    ENCRYPTION BY PASSWORD = 'sd092735kjn$&adsg';  
GO   

另请参阅

CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
CLOSE MASTER KEY (Transact-SQL)
RESTORE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
DROP MASTER KEY (Transact-SQL)
加密层次结构
BACKUP SYMMETRIC KEY