SqlServer 之 sp_config 存储过程

MSSQL2005远程备份数据库 收藏
原理:添加网络驱动器映射,将备份文件备份到远程目标,最后删除网络驱动器映射。
 
 
 
xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出。由于xp_cmdshell 可以执行任何操作系统命令,所以一旦SQL Server管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell 在SQL Server中执行操作系统命令,如:创建系统管理员,也就意味着系统的最高权限已在别人的掌控之中。由于存在安全隐患,所以在SQL Server 2005中, xp_cmdshell 默认是关闭的。
 
 
 
sp_configure存储过程用于显示或更改当前服务器的全局配置设置。
 
操作步骤:
 
1.执行net share sharename=driver:\directory /unlimited,共享目录
 
2.将下面的文本保存在RemoteBackup.sql中,修改相应的目录及数据库名称
 
--打开高级设置
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
--打开xp_cmdshell扩展存储过程
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
 
 
 
 
declare @strdirname varchar(100)   --目标文件名称
declare @RemotePathstr varchar(100)   --远程路径名
declare @LocalPathstr varchar(100)    --本机路径名
 
declare @DBName varchar(100)  --待备份数据库名称
 
set @DBName='DutySystem'
 
--设置待备份数据库名称
set @strdirname=@DBName+replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')
 
--设置备份文件名
set @RemotePathstr = 'z:\'+@strdirname+'.bak'   --设置远程备份保存目标
--添加网络驱动器映射
exec master..xp_cmdshell 'net use z: \\备份机ip\文件夹名(或盘符$) "password" /user:备份机ip\登录身份(得拥有备份路径的写权限)'
--实施备份
backup database @DBName to disk=@RemotePathstr
--删除映射
exec master..xp_cmdshell 'net use z: /delete'
 
--关闭xp_cmdshell扩展存储过程、高级设置
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE
 
3.执行sqlcmd -S MSSQL服务器\实例名,1433 -P 登陆名 -U 密码 -D master -i  路径\RemoteBackup.sql
 
4.net share backup /del,关闭目录的共享
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值