本主题介绍使用 Transact-SQL 创建加密备份所需的步骤。
使用加密备份到磁盘
先决条件:
访问本地磁盘或具有足够空间的存储,以创建数据库的备份。
主数据库的数据库主密钥,以及 SQL Server 实例上可用的证书或非对称密钥。 有关加密要求和权限,请参阅 备份加密。
使用以下步骤将数据库的加密备份创建到本地磁盘。 此示例使用名为 MyTestDB 的用户数据库。
创建 master 数据库的数据库主密钥: 选择用于加密将存储在数据库中的主密钥副本的密码。 连接到数据库引擎,启动新的查询窗口,复制并粘贴以下示例,然后单击“ 执行”。
-- Creates a database master key. -- The key is encrypted using the password "<master key password>" USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>'; GO创建备份证书: 在 master 数据库中创建备份证书。 将以下示例复制并粘贴到查询窗口中,然后单击“执行”
Use Master GO CREATE CERTIFICATE MyTestDBBackupEncryptCert WITH SUBJECT = 'MyTestDB Backup Encryption Certificate'; GO备份数据库: 指定要使用的加密算法和证书。 将以下示例复制并粘贴到查询窗口中,然后单击 执行。
BACKUP DATABASE [MyTestDB] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak' WITH COMPRESSION, ENCRYPTION ( ALGORITHM = AES_256, SERVER CERTIFICATE = MyTestDBBackupEncryptCert ), STATS = 10 GO
有关加密受 EKM 保护的备份的示例,请参阅使用 Azure Key Vault 的可扩展密钥管理(SQL Server)。
使用加密备份到 Azure 存储
如果使用 “SQL Server 备份到 URL ”选项创建到 Azure 存储的备份,加密步骤是相同的,但必须使用 URL 作为目标,并使用 SQL 凭据向 Azure 存储进行身份验证。 如果希望将 SQL Server 托管备份配置为使用加密选项的 Microsoft Azure,请参阅 设置 SQL Server 托管备份到 Azure 和 为可用性组设置 SQL Server 托管备份。
先决条件:
Windows 存储帐户和容器。 有关详细信息,请参阅: 第 1 课:创建 Azure 存储对象。
master 数据库的数据库主密钥,以及 SQL Server 实例上的证书或非对称密钥。 有关加密要求和权限,请参阅 备份加密。
创建 SQL Server 凭据: 若要创建 SQL Server 凭据,请连接到数据库引擎,打开一个新的查询窗口,然后复制并粘贴以下示例,然后单击“ 执行”。
CREATE CREDENTIAL mycredential WITH IDENTITY= 'mystorageaccount' - this is the name of the storage account you specified when creating a storage account , SECRET = '<storage account access key>' - this should be either the Primary or Secondary Access Key for the storage account创建数据库主密钥: 选择用于加密将存储在数据库中的主密钥副本的密码。 连接到数据库引擎,启动新的查询窗口,复制并粘贴以下示例,然后单击“ 执行”。
-- Creates a database master key. -- The key is encrypted using the password "<master key password>" USE Master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>'; GO创建备份证书: 在 master 数据库中创建备份证书。 在查询窗口中复制并粘贴以下示例,然后单击“执行”
USE Master; GO CREATE CERTIFICATE MyTestDBBackupEncryptCert WITH SUBJECT = 'MyTestDBBackupEncryptCert '; GO备份数据库: 指定要使用的加密算法和证书。 将以下示例复制并粘贴到查询窗口中,然后单击 执行。
BACKUP DATABASE [MyTestDB] TO URL = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak' WITH CREDENTIAL 'mycredential' - this is the name of the credential created in the first step. ,COMPRESSION ,ENCRYPTION ( ALGORITHM = AES_256, SERVER CERTIFICATE = MyTestDBBackupEncryptCert ), STATS = 10 GO