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 加上数据库用户权限。