SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
2017-05-02 21:53
489 查看
原文:SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
在backup语句中,定义备份集密码和媒体密码为可选功能。使用密码可防止利用SQLSERVER工具未经授权地执行还原操作和在媒体中添加备份集。
如果指定了密码则用户还必须提供媒体密码才能执行这些操作
关于媒体集和备份集大家可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/ms186865(v=SQL.90).aspx
尽管使用密码对防止利用SQLSERVER工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,
原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所查看备份文件里面的内容。
对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要
注意:从 SQL Server 2012 开始,PASSWORD 和 MEDIAPASSWORD 选项不可再用于创建备份; 但仍可以还原使用密码创建的备份!!!
以下是MSDN关于backup语句中的MEDIAPASSWORD选项和PASSWORD选项的解释
BACKUP 使用由 PASSWORD 选项提供的备份集密码创建备份集。
另外,通常 BACKUP 在写入媒体之前将验证由 MEDIAPASSWORD 选项提供的媒体密码。BACKUP 不验证媒体密码的唯一情况是格式化媒体时,
这将覆盖媒体标头。 如果 BACKUP 写入媒体标头,BACKUP 将给 MEDIAPASSWORD 选项中指定的值分配媒体集密码。
-------------------------------------华丽的分割线------------------------------------------------------------
分三种情况进行实验
(1)backup语句中只有mediapassword
(2)backup语句中只有PASSWORD
(3)backup语句中有PASSWORD和mediapassword
在测试情况三的时候我移动了备份文件,并使用了U盘,但是都不会报错,只要有提供密码就可以了
因为对媒体集和备份集不是很熟悉,所以,我把备份文件备份在D盘,然后把备份文件移动到本地硬盘的F盘和U盘里,U盘的盘符是J
但是都不会报错,只要有提供密码就可以了
-----------------------------------------------华丽的分割线---------------------------------------------------------
加密了之后使用SSMS不能查看到备份集信息
如果不加密是可以看到的
-------------------------------------------------华丽的分割线------------------------------------------------------------------
最后查看哪些备份集加了密码,但是只有media_uuid,不知道备份集的名称,郁闷~
SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
在备份数据库的时候,用户可以为媒体集、备份集或两者指定密码在backup语句中,定义备份集密码和媒体密码为可选功能。使用密码可防止利用SQLSERVER工具未经授权地执行还原操作和在媒体中添加备份集。
如果指定了密码则用户还必须提供媒体密码才能执行这些操作
关于媒体集和备份集大家可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/ms186865(v=SQL.90).aspx
尽管使用密码对防止利用SQLSERVER工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,
原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所查看备份文件里面的内容。
对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要
注意:从 SQL Server 2012 开始,PASSWORD 和 MEDIAPASSWORD 选项不可再用于创建备份; 但仍可以还原使用密码创建的备份!!!
以下是MSDN关于backup语句中的MEDIAPASSWORD选项和PASSWORD选项的解释
PASSWORD = { password | @password_variable } 为备份集设置密码。 PASSWORD 是一个字符串。 如果为备份集定义了密码,则必须提供此密码才能对该备份集执行任何的 SQL Server 还原操作。 但是,备份集密码不能防止覆盖备份文件。 若要防止覆盖备份文件,请改用媒体集密码 此密码提供的安全性较低。 它旨在防止授权用户或未授权用户使用 SQL Server 2005 工具进行不正确的还原, 但是不能防止通过其他方式或通过替换密码来读取备份数据。 保护备份的最佳做法是将备份磁带存储在安全的位置, 或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。 ACL 应设置在创建备份的根目录下。
MEDIAPASSWORD = { mediapassword | @mediapassword_variable } 为媒体集设置密码。 MEDIAPASSWORD 是一个字符串。 如果为媒体集定义了密码,则在该媒体集上创建备份集之前必须提供此密码。 另外,从该媒体集执行任何还原操作时也必须提供媒体密码。 只有通过重新格式化才能覆盖受密码保护的媒体 此密码提供的安全性较低。 它旨在防止授权用户或未授权用户使用 SQL Server 2005 工具进行不正确的还原, 但是不能防止通过其他方式或通过替换密码来读取备份数据。 保护备份的最佳做法是将备份磁带存储在安全的位置, 或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。 ACL 应设置在创建备份的根目录下。
BACKUP 使用由 PASSWORD 选项提供的备份集密码创建备份集。
另外,通常 BACKUP 在写入媒体之前将验证由 MEDIAPASSWORD 选项提供的媒体密码。BACKUP 不验证媒体密码的唯一情况是格式化媒体时,
这将覆盖媒体标头。 如果 BACKUP 写入媒体标头,BACKUP 将给 MEDIAPASSWORD 选项中指定的值分配媒体集密码。
-------------------------------------华丽的分割线------------------------------------------------------------
分三种情况进行实验
(1)backup语句中只有mediapassword
(2)backup语句中只有PASSWORD
(3)backup语句中有PASSWORD和mediapassword
--情况一 USE master GO Backup DATABASE [pratice] To disk='D:\pratice_fullbackup_201306110152.bak' WITH mediapassword='123456' GO --还原 RESTORE DATABASE [pratice] FROM DISK='D:\pratice_fullbackup_201306110152.bak' WITH MEDIAPASSWORD='123456',REPLACE
--情况二 USE master GO Backup DATABASE [hengshan] To disk='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456' GO --还原 RESTORE DATABASE [hengshan] FROM DISK='D:\hengshan_fullbackup_201306110152.bak' WITH password='123456', REPLACE
--情况三 USE master GO Backup DATABASE GPOSDB To disk='D:\GPOSDB_fullbackup_2013061110152.bak' WITH mediapassword='123456' ,PASSWORD='123456' GO --还原 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,不知道备份集的名称,郁闷~
--查看哪些备份集加了密码 USE [msdb] GO SELECT * FROM [dbo].[backupmediaset]
相关文章推荐
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
- 在vb.net中使用数据库备份文件还原sqlserver数据库
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 Alter AUTHORIZATION 语句将数据库
- 使用SQLServer2008备份bak文件还原数据库
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所
- 利用SQLServer备份文件创建数据库(针对C/S系统)
- sql命令还原数据库BAK备份文件到现有数据中.
- (精)如何利用T_SQL实现数据库备份与还原处理之一--(如何利用sql语句,得到数据库文件目录)
- PB数据库连接描述文件的密码加密和解密原理
- [转]SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- 转摘--MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- Asp.net 不使用SQLDMO实现数据库备份和还原
- 还原 SQL Server 备份数据库文件
- 使用批处理文件异地备份数据库(最近几天的数据)
- 根据备份文件直接还原数据库(V2.0)
- 使用.net备份和还原数据库
- MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- 根据备份文件直接还原数据库