sqlserver 数据库数字自动压缩和加密

公司有个项目需要每天对服务器数据进行备份,并且需要对备份数据进行加密和压缩。具体操作如下:

1、安装压缩软件(winrar),以便于密码调用。

2、选择需要备份的数据,新建一个存储过程

具体语句如下:

CREATE procedure jxc_backup
--alter procedure jxc_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='C:/Backup/' --备份文件夹
set @datefile='slJXC_backup_'+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 slJXC TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'jxc数据备份', NOSKIP , STATS = 10, NOFORMAT

--set @delcmd = 'del '+@prefix+ 'RAR/*.rar' --先清空RAR备份文件夹
set @rarcmd ='C:/Progra~1/WinRAR/WinRAR.exe a -ppassword -df -ep1 '+@rarfile+' '+@bakfile

--将password改为您要设置的密码,进行加密压缩
--exec master..xp_cmdshell @delcmd

exec master..xp_cmdshell @rarcmd

go

3、新建一个数据库维护,然后调用该存储过程执行,检验是否成功。

4、报错,在数据库查询窗口进行测试,如果报错如下在,则需要去设置cmd.exe 的用户权限,需要给cmd.exe 加上数据库用户权限。

 

posted @ 2021-04-28 16:33  眯眼看世界  阅读(468)  评论(0编辑  收藏  举报