sql怎么自动备份并将备份文件加密

sql怎么自动备份并将备份文件加密,第1张

SQL SERVER 定时自动备份,并将备份文件加密压缩(2008-11-12 11:21:48)标签:it 分类: *** 作系统@数据库

最近因为公司要升级HR系统,我被安排管理这个项目,公司为了安全起见和我签署了保密协议,按了手印责任就大了,所以要想办法加强系统、应用、数据库的安全,系统无法控制,应用的安全还不错,所以我就着手做数据库的安全,数据库用户及密码都控制了,现在需要对自动备份的数据文件进行加密,以下就是我使用到的工具、方法和代码共享出来,供大家参考。

第一个步骤:就是让SQL Server自动备份数据库,通过DB维护计划完成,这个我就不详细说了。

第二个步骤:就是加密并压缩备份的数据库文件。为了在备份后,马上进行压缩,最方便的就是直接使用SQL命令执行压缩,由于WinRAR可以通过命令行调用,所以我们可以使用SQL Server中的xp_cmdshell命令来执行压缩指令,同时通过其中的一些参数指定压缩密码,这样加密压缩就实现了。(为了实现此功能,服务器上要安装WinRAR)

第三步骤:修改维护计划里调用的SQL,在命令中输入执行备份、加密、删除备份的文件的存储过程。

实施步骤和代码:

1、在备份的数据库中建立存储过程

CREATE procedure hrp_backup

--alter procedure hrp_backup

WITH ENCRYPTION

AS

declare

@prefix nvarchar(100),

@datefile nvarchar(100),

@bakfile nvarchar(100),

@rarfile nvarchar(100),

@delcmd nvarchar(100),

@rarcmd nvarchar(150)

set @prefix='D:/Database_bak/' --备份文件夹

set @datefile='HRM8_DBBAK_'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))

set @bakfile=@prefix+@datefile+'bak'

set @rarfile=@prefix+''+@datefile+'rar'

BACKUP DataBASE HRM8 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'HR数据备份', NOSKIP , STATS = 10, NOFORMAT

--set @delcmd = 'del '+@prefix+ 'RAR/rar' --先清空RAR备份文件夹

set @rarcmd ='C:/Progra~1/WinRAR/WinRARexe a -ppassword -df -ep1 '+@rarfile+' '+@bakfile

-- -df压缩后删除文件 -ep1 从名称中排除基本目录

--将password改为您要设置的密码,进行加密压缩

--exec masterxp_cmdshell @delcmd

exec masterxp_cmdshell @rarcmd

Go

2、新建维护计划,在Transact-SQL命令中执行以上的存储过程。

exec hrp_backup

go

验证调试成功。

实现SQL server2005数据库自动备份压缩功能有两种方式,自动功能和用第三方工具,自带功能比较复杂,请直接参考百度文库教程,如下:>

--完整备份

Backup Database 数据库名

To disk=’D:\随便命名一个bak’

--差异备份

Backup Database 数据库名

To disk=’D:\随便命名一个bak’

With Differential

--日志备份

Backup Log 数据库名

To disk=’D:\随便命名一个trn’

1、首先打开mysql数据库软件进入软件主界面。

2、然后再左侧树里打开自己的的数据库。

3、然后需要点击需要备份的数据库名。

4、如图所示为打开数据库后界面。

5、然后需要点击转储sql文件选项。

6、然后需要打开选择存储文件路径并选择保存。

7、点击保存即可在路径备份好格式为sql的数据库文件。

sqlserver备份两种方式

1 通过维护计划

2 通过job运行命令

--差异备份

EXECUTE masterdboxp_create_subdir N'D:\pic\RE\TEST'

GO

BACKUP DATABASE [TEST] TO DISK = N'D:\pic\RE\TEST\TEST_backup_201101051801bak'

WITH DIFFERENTIAL , NOFORMAT, NOINIT,

NAME = N'TEST_backup_20110105180152', SKIP, REWIND, NOUNLOAD, STATS = 10

go

--完整备份

BACKUP DATABASE [TEST] TO DISK = N'D:\pic\RE\TEST_backup_201101051802bak'

WITH NOFORMAT, NOINIT,

NAME = N'TEST_backup_20110105180256', SKIP, REWIND, NOUNLOAD, STATS = 10

go

--强制还原

--REPLACE覆盖已存在数据库

RESTORE DATABASE TEST

FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL2\MSSQL\Backup\TESTBAK'

WITH MOVE 'TEST' TO 'D:\pic\TESTmdf',

MOVE 'TEST_log' TO 'D:\pic\TEST_logldf',

STATS = 10, REPLACE

GO

--显示备份列表

RESTORE FILELISTONLY

FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL2\MSSQL\Backup\TESTBAK'

go

生成年月日的备份文件

declare @databasename nvarchar(50)

set @databasename = 'ExtDB'

DECLARE @strPath NVARCHAR(200)

set @strPath = convert(NVARCHAR(19),getdate(),120)

set @strPath = REPLACE(@strPath, ':' , '')

set @strPath = 'E:\工作目录\bk\' + @databasename+@strPath + 'bak'

BACKUP DATABASE @databasename TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

以上就是关于sql怎么自动备份并将备份文件加密全部的内容,包括:sql怎么自动备份并将备份文件加密、如何实现SQL Server 2005数据库自动备份压缩、sql2000如何用命令备份数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10204560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存