备份和还原的安全注意事项

本主题讨论在保证 Microsoft SQL Server 数据库备份的安全方面的一些建议。

注意注意

有关备份或还原数据库时设置的文件权限的信息,请参阅保护数据和日志文件的安全

管理日志备份

使用的是完整恢复模式或大容量日志恢复模式时,如果丢失了日志备份,则可能无法将数据库还原到上次备份之后的某个时点。可以考虑通过将日志备份到磁盘,然后将磁盘文件复制到其他设备(如单独的磁盘或磁带)来创建多个日志备份副本。

建议您为一系列数据库备份存储一条日志备份链。如果最新的完整数据库备份不可用,则可以先还原早期的完整数据库备份,然后再还原在该早期完整数据库备份之后创建的所有事务日志备份。

如果丢失了日志备份,则在将数据库还原到事务日志备份内的某个时点时,建议您保留丢失的日志备份之前的事务日志备份。

物理保护

为保护备份磁带,建议将其存储在另外一个安全的位置。

为保护备份磁盘文件,建议仅备份到受限制性访问控制列表 (ACL) 保护的磁盘文件。应该在创建备份的根目录下设置 ACL。在某些情况下,可能需要使用 NTFS 加密文件系统 (EFS) 进一步保护基于磁盘的备份。另外,还建议您使用 Windows 备份将 SQL Server 磁盘备份备份到磁带,然后再将磁带存储在另外一个安全的位置。有关详细信息,请参阅 Windows 文档。

备份密码保护

SQL Server 支持对备份媒体和备份集进行密码保护。

重要说明重要提示

此密码很容易被破获。它的目的是为了阻止授权用户或非授权用户使用 SQL Server 工具进行不正确的还原,但不能防止通过其他方式或通过替换密码读取备份数据。 下一版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

执行备份操作时不需要密码,不过密码可提供额外的安全级别。可以将它们用作对使用 SQL Server 安全角色的补充。使用密码保护帮助您防止未经授权或无意识的操作,例如:

  • 还原数据库

  • 追加到媒体

  • 覆盖媒体

重要说明重要提示

密码安全不能防止通过格式化媒体或将媒体用作延续磁带来覆盖媒体。另外,指定密码不会以任何方式加密数据。

媒体集密码

它对媒体集中保存的数据提供较弱的保护。当写入媒体标头时,将保存媒体集密码;不能更改该密码。如果格式化媒体集时提供了密码,则在该媒体集上创建备份集时必须提供密码。另外,从该媒体集执行任何还原操作时也必须提供媒体密码。

注意注意

只能对 SQL Server 备份和还原操作使用媒体。

若要指定媒体集密码,请在 BACKUP 或 RESTORE 语句中使用 MEDIAPASSWORD 选项。

备份集密码

它对特定的备份集提供较弱的保护。可以对媒体上的每个备份集使用不同的备份集密码。备份集密码是在将备份集写入媒体时创建的。如果为一个备份集指定了密码,必须提供这个密码才能对该备份集执行任何还原操作。

若要指定备份集密码,请在 BACKUP 或 RESTORE 语句中使用 PASSWORD 选项。

仅还原来自受信任源的备份

建议您不要从未知或不可信源附加或还原数据库。这些数据库可能包含恶意代码,这些代码可能会执行非预期 Transact-SQL 代码,或者通过修改架构或物理数据库结构导致错误。使用来自未知或不可信来源的数据库前,请在非生产服务器上对该数据库运行 DBCC CHECKDB。另外,还要检查该数据库中的代码,如存储过程或其他用户定义代码。