博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
阅读量:6851 次
发布时间:2019-06-26

本文共 2867 字,大约阅读时间需要 9 分钟。

原文:

SQLSERVER使用密码加密备份文件以防止未经授权还原数据库

在备份数据库的时候,用户可以为媒体集、备份集或两者指定密码

在backup语句中,定义备份集密码和媒体密码为可选功能。使用密码可防止利用SQLSERVER工具未经授权地执行还原操作和在媒体中添加备份集。

如果指定了密码则用户还必须提供媒体密码才能执行这些操作

关于媒体集和备份集大家可以参考MSDN:

 

尽管使用密码对防止利用SQLSERVER工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,

原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所查看备份文件里面的内容。

对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要

 

注意:从 SQL Server 2012 开始,PASSWORD 和 MEDIAPASSWORD 选项不可再用于创建备份; 但仍可以还原使用密码创建的备份!!!

 

以下是MSDN关于backup语句中的MEDIAPASSWORD选项和PASSWORD选项的解释

 

1 PASSWORD = { password | @password_variable }2 为备份集设置密码。 PASSWORD 是一个字符串。 如果为备份集定义了密码,则必须提供此密码才能对该备份集执行任何的 SQL Server 还原操作。 3 但是,备份集密码不能防止覆盖备份文件。 若要防止覆盖备份文件,请改用媒体集密码4 此密码提供的安全性较低。 它旨在防止授权用户或未授权用户使用 SQL Server 2005 工具进行不正确的还原,5  但是不能防止通过其他方式或通过替换密码来读取备份数据。 保护备份的最佳做法是将备份磁带存储在安全的位置,6 或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。 ACL 应设置在创建备份的根目录下。

 

1 MEDIAPASSWORD = { mediapassword | @mediapassword_variable }2 为媒体集设置密码。 MEDIAPASSWORD 是一个字符串。3 如果为媒体集定义了密码,则在该媒体集上创建备份集之前必须提供此密码。 4 另外,从该媒体集执行任何还原操作时也必须提供媒体密码。 只有通过重新格式化才能覆盖受密码保护的媒体5 此密码提供的安全性较低。 它旨在防止授权用户或未授权用户使用 SQL Server 2005 工具进行不正确的还原, 6 但是不能防止通过其他方式或通过替换密码来读取备份数据。 保护备份的最佳做法是将备份磁带存储在安全的位置,7 或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。 ACL 应设置在创建备份的根目录下。

BACKUP 使用由 PASSWORD 选项提供的备份集密码创建备份集。

另外,通常 BACKUP 在写入媒体之前将验证由 MEDIAPASSWORD 选项提供的媒体密码。BACKUP 不验证媒体密码的唯一情况是格式化媒体时,

这将覆盖媒体标头。 如果 BACKUP 写入媒体标头,BACKUP 将给 MEDIAPASSWORD 选项中指定的值分配媒体集密码。

-------------------------------------华丽的分割线------------------------------------------------------------

分三种情况进行实验

(1)backup语句中只有mediapassword

(2)backup语句中只有PASSWORD

(3)backup语句中有PASSWORD和mediapassword

 

 

1 --情况一 2 USE master 3 GO 4  5 Backup DATABASE [pratice] 6 To disk='D:\pratice_fullbackup_201306110152.bak' WITH mediapassword='123456'  7 GO 8  9 --还原10 RESTORE DATABASE [pratice] FROM DISK='D:\pratice_fullbackup_201306110152.bak' WITH MEDIAPASSWORD='123456',REPLACE
1 --情况二 2 USE master 3 GO 4  5 Backup DATABASE [hengshan] 6 To disk='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456'  7 GO 8  9 --还原10 RESTORE DATABASE [hengshan] FROM DISK='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456', REPLACE
1 --情况三 2 USE master 3 GO 4  5 Backup DATABASE GPOSDB 6 To disk='D:\GPOSDB_fullbackup_2013061110152.bak' WITH mediapassword='123456' ,PASSWORD='123456' 7 GO 8  9 --还原10 RESTORE DATABASE [GPOSDB] FROM DISK='J:\GPOSDB_fullbackup_2013076110152.bak' WITH PASSWORD='123456',MEDIAPASSWORD='123456',REPLACE

 

在测试情况三的时候我移动了备份文件,并使用了U盘,但是都不会报错,只要有提供密码就可以了

因为对媒体集和备份集不是很熟悉,所以,我把备份文件备份在D盘,然后把备份文件移动到本地硬盘的F盘和U盘里,U盘的盘符是J

但是都不会报错,只要有提供密码就可以了

-----------------------------------------------华丽的分割线---------------------------------------------------------

加密了之后使用SSMS不能查看到备份集信息

如果不加密是可以看到的

-------------------------------------------------华丽的分割线------------------------------------------------------------------

最后查看哪些备份集加了密码,但是只有media_uuid,不知道备份集的名称,郁闷~

1 --查看哪些备份集加了密码2 USE [msdb]3 GO4 SELECT * FROM [dbo].[backupmediaset]

 

转载地址:http://vmgul.baihongyu.com/

你可能感兴趣的文章
2011年7月10个非常棒的jQuery插件
查看>>
.NET简谈事务、分布式事务处理
查看>>
我是如何推理出王珞丹住址的zz
查看>>
C#泛型列表List<T>基本用法总结
查看>>
《UNIX环境高级编程》单个源码编译方法
查看>>
追涨必须具备的四个条件
查看>>
最大存款方式
查看>>
GridView删除时激发了未处理的事件“RowDeleting"
查看>>
ZOJ 3213 Beautiful Meadow
查看>>
什么是聚合根
查看>>
机器学习&数据挖掘笔记_17(PGM练习一:贝叶斯网络基本操作)
查看>>
图像旋转
查看>>
css两列等高布局
查看>>
PHP适合做大型网站吗?
查看>>
lua入门之二:c/c++ 调用lua及多个函数返回值的获取
查看>>
C使用FILE指针文件操作
查看>>
cobbler pxe-menu
查看>>
openssl 非对称加密 RSA 加密解密以及签名验证签名
查看>>
MyBatis Generator生成DAO——序列化
查看>>
算法笔记_175:历届试题 蚂蚁感冒(Java)
查看>>