一、xp_cmdshell的启用 xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 shell 执行,并以文本行的形式返回所有输出。由于xp_cmdshell 可以执行任何操作系统命令,所以一旦SQL Server管理员帐号(如sa)被攻破,那么攻击者就可以利用xp_cmdshell 在SQL Server中执行操作系统命令,如:创建系统管理员,也就意味着系统的最高权限已在别人的掌控之中。由于存在安全隐患,所以在SQL Server 2005中, xp_cmdshell 默认是关闭的。 两种方式启用xp_cmdshell 1.打开外围应用配置器—> 功能的外围应用配置器—> 实例名Database Enginexp_cmdshell—> 启用 2.sp_configure -- 允许配置高级选项 EXEC sp_configure 'show advanced options',1 GO -- 重新配置 RECONFIGURE GO -- 启用xp_cmdshell EXEC sp_configure 'xp_cmdshell',0 GO --重新配置 RECONFIGURE GO --执行想要的xp_cmdshell语句 Exec xp_cmdshell 'query user' GO --用完后,要记得将xp_cmdshell禁用(从安全角度安全考虑) -- 允许配置高级选项 EXEC sp_configure 'show advanced options',1 GO -- 重新配置 RECONFIGURE GO -- 禁用xp_cmdshell EXEC sp_configure 'xp_cmdshell',1 GO --重新配置 RECONFIGURE 二、开始备份 exec master..xp_cmdshell 'net use z: juwangSQLBak 123456 /user:juwangadministrator' //建立网络路径映射:网络路径,juwangSQLBak;z:是映射网络路径对应本机的盘符;juwang是远程计算机的名称(也可写IP地址)。administrator是登录的用户名,123456是登录用户的密码(最好写成"123456") ? backup database hjx to disk='e:hjx_backup.bak ' with init 备份hjx数据库,with init 覆盖,noinit追加 ? exec master..xp_cmdshell 'copy e:hjx_backup.bak? z:' 复制hjx_backup.bak文件到z: ? exec master..xp_cmdshell 'del e:hjx_backup.bak ' 删除本地备份文件 ? exec master..xp_cmdshell 'net use z: /delete' 删除网络映射盘z:
转自:http://sqlnet.blog.51cto.com/343343/169096/
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|