在备份或还原期间启用或禁用备份校验和 (SQL Server)
适用范围:SQL Server
本文章介绍使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中备份或还原数据库时,如何启用或禁用备份校验和。
权限
BACKUP
默认情况下,为 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员授予 BACKUP DATABASE
和 BACKUP LOG
权限 。
备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。 SQL Server 必须能够读取和写入设备;运行 SQL Server 服务的帐户必须具有写入权限。 但是,用于在系统表中添加备份设备条目的 sp_addumpdevice 并不检查文件访问权限。 有关备份设备物理文件的这些问题可能直到为尝试备份或还原而访问物理资源时才会出现。
RESTORE
如果要还原的数据库不存在,则用户必须有 CREATE DATABASE
权限才能执行 RESTORE
。 如果数据库存在,则 RESTORE
权限默认授予 sysadmin 和 dbcreator 固定服务器角色成员以及数据库的所有者 (dbo)(对于 FROM DATABASE_SNAPSHOT
选项,数据库始终存在)。
RESTORE
权限被授予给成员身份信息始终可由服务器使用的角色。 因为只有在固定数据库可以访问且没有损坏时(在执行 RESTORE
时并非总是如此)才能检查固定数据库角色成员身份,因此 db_owner 固定数据库角色成员没有 RESTORE
权限。
使用 SQL Server Management Studio
在备份操作期间启用或禁用校验和
执行以下步骤以便 创建数据库备份。
在“选项”页的“可靠性”部分中,选择“写入介质前检查校验和”。
使用 Transact-SQL
为备份操作启用或禁用备份校验和
连接到 数据库引擎。
在标准栏上,选择“新建查询”。
若要在 BACKUP (Transact-SQL) 语句中启用备份校验和,请指定
WITH CHECKSUM
选项。 若要禁用备份校验和,请指定WITH NO_CHECKSUM
选项。 这是默认行为,但压缩备份除外。 下面的示例指定执行校验和。
BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO
为还原操作启用或禁用备份校验和
连接到 数据库引擎。
在标准栏上,选择“新建查询”。
若要在 RESTORE Statements (Transact-SQL) 语句中启用备份校验和,请指定
WITH CHECKSUM
选项。 这是压缩备份的默认行为。 若要禁用备份校验和,请指定WITH NO_CHECKSUM
选项。 这是默认行为,但压缩备份除外。 下面的示例指定执行备份校验和。
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO
警告
如果明确请求还原操作的 CHECKSUM
并且备份包含备份校验和时,与默认情况相同,将同时验证备份校验和及页校验和。 但是,如果备份集不包含备份校验和,还原操作将失败,并显示一条消息指明校验和不存在。