微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,关闭目录的共享

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐