在备份或还原期间启用或禁用备份校验和 (SQL Server)

适用范围:SQL Server

本文章介绍使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中备份或还原数据库时,如何启用或禁用备份校验和。

权限

BACKUP

默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASEBACKUP LOG 权限 。

备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中添加备份设备条目的 sp_addumpdevice 并不检查文件访问权限。 有关备份设备物理文件的这些问题可能直到为尝试备份或还原而访问物理资源时才会出现。

RESTORE

如果要还原的数据库不存在,则用户必须有 CREATE DATABASE 权限才能执行 RESTORE。 如果数据库存在,则 RESTORE 权限默认授予 sysadmindbcreator 固定服务器角色成员以及数据库的所有者 (dbo)(对于 FROM DATABASE_SNAPSHOT 选项,数据库始终存在)。

RESTORE 权限被授予给成员身份信息始终可由服务器使用的角色。 因为只有在固定数据库可以访问且没有损坏时(在执行 RESTORE 时并非总是如此)才能检查固定数据库角色成员身份,因此 db_owner 固定数据库角色成员没有 RESTORE 权限。

使用 SQL Server Management Studio

在备份操作期间启用或禁用校验和

  1. 执行以下步骤以便 创建数据库备份

  2. 在“选项”页的“可靠性”部分中,选择“写入介质前检查校验和”

使用 Transact-SQL

为备份操作启用或禁用备份校验和

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 若要在 BACKUP (Transact-SQL) 语句中启用备份校验和,请指定 WITH CHECKSUM 选项。 若要禁用备份校验和,请指定 WITH NO_CHECKSUM 选项。 这是默认行为,但压缩备份除外。 下面的示例指定执行校验和。

BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO

为还原操作启用或禁用备份校验和

  1. 连接到 数据库引擎。

  2. 在标准栏上,选择“新建查询”。

  3. 若要在 RESTORE Statements (Transact-SQL) 语句中启用备份校验和,请指定 WITH CHECKSUM 选项。 这是压缩备份的默认行为。 若要禁用备份校验和,请指定 WITH NO_CHECKSUM 选项。 这是默认行为,但压缩备份除外。 下面的示例指定执行备份校验和。

RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO

警告

如果明确请求还原操作的 CHECKSUM 并且备份包含备份校验和时,与默认情况相同,将同时验证备份校验和及页校验和。 但是,如果备份集不包含备份校验和,还原操作将失败,并显示一条消息指明校验和不存在。