1.      检查SQL Server 服务的启动账户

检查SQL Server启动账户是否为Local System,如果是修改为“

NT AUTHORITY/NetworkService”或“Administrator”。

注:

xp_cmdshell 生成的 Windows 进程与 SQL Server 服务帐户具有相同的安全权限。而Local System账户是系统内置账户,没有网络连接缺陷的,因此需要修改SQL Server 服务的启动账户。

2.      开启SQL Server系统存储过程 xp_cmdshell

为了安全,默认情况下SQL Server系统存储过程 xp_cmdshell被禁用,可以在SSMS执行下面语句检查是否被禁用:

--启用高级选项xp_cmdshell,属于高级选项,因此需要先开启高级选项

exec master..sp_configure 'show advanced options', 1;

GO

RECONFIGURE; --立即生效,否则重启实例生效

GO

--查询xp_cmdshell状态

exec master..sp_configure 'xp_cmdshell'

返回结果:

name

minimum

maximum

config_value

run_value

xp_cmdshell

0

1

0

0

若run_value值为0则表示xp_cmdshell被禁用。

使用下面语句启用xp_cmdshell

--启用高级选项

sp_configure 'show advanced options', 1;

GO

RECONFIGURE; --立即生效,否则重启实例生效

GO

--启用xp_cmdshell

sp_configure 'xp_cmdshell', 1;

GO

RECONFIGURE;

GO

3.      建立磁盘映射

执行下面语句建立网络磁盘映射。

--如果是域环境需要制定登录用户所在的域,详细参考net use 用法。

--“//192.168.0.100/E$”为远程服务器的共享文件路径,根据实际修改

exec master..xp_cmdshell 'net use X: //192.168.0.100/E$ "123456" /USER:192.168.0.100/Administrator'

GO

4.      还原数据库

成功建立网络磁盘映射后就可以想操作本地硬盘一样,进行数据库备份和还原操作了。可以使用图形化操作,也可以使用T-SQL,不再详述。

5.关闭共享网络连接

exec master..xp_cmdshell 'net use X: /delete'

GO

6.      关闭 SQL Server xp_cmdshell

使用xp_cmdshell 可以执行许多系统命令,例如重新启动计算机:

因此为了安全起见,操作完成后要重新禁用xp_cmdshell,使用下面语句。

--关闭xp_cmdshell

sp_configure 'xp_cmdshell', 0;

GO

RECONFIGURE;

GO

--关闭高级选项

sp_configure 'show advanced options', 0;

GO

RECONFIGURE;

GO

关于xp_cmdshell的用法可参考SQL Server联机丛书。

--执行cmd命令,强制重启计算机

exec master..xp_cmdshell 'shutdown -r -f'

SQL Server 远程备份还原数据库相关推荐

  1. SQL Server in Docker - 还原数据库

    SQL Server in Docker 还原数据库 上一回演示了如果在Docker环境下安装SQL Server(使用Docker运行SQL Server),这次我们来演示下如何还原一个数据库备份文 ...

  2. 如何在SQL Server 2005中还原数据库

    还原数据库的方式 有几种数据库备份的方式就将会有几种还原数据库的 方式: l 完整备份的还原:无论是完整备份.差异备份还是事务日志备份的还原,在第一步都要先做完整备份的还原.完整备份的还原只需要还原完 ...

  3. 通过SQL语句来备份,还原数据库

    1: /* 2: 通过SQL 语句备份数据库 3: */ 4: BACKUP DATABASE mydb 5: TO DISK ='C:/DBBACK/mydb.BAK' 6: --这里指定需要备份数 ...

  4. MS SQL SERVER中备份所有数据库

    建立一个存储过程,每次备份时执行这个过程,如果愿意的话也可以在sql中做个任务来每周调用. CREATE PROCEDURE p_BackAllDatabase (    @path nvarchar ...

  5. SQL点滴12—SQL Server备份还原数据库中的小把戏

    原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息"is formatted to support  1 media fami ...

  6. SQL Server之备份和还原系统数据库

    系统数据库是管理和维护SQL Server所必须的数据库,对服务器实例的运行至关重要.每次进行大量更新后必须备份多个系统数据库,包括master.model.msdb,备份这些系统数据库,就可以在发生 ...

  7. SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法此信息转载自BlueSky's Blog,www.heuupk.com,为尊重无价的知识请保留此版权信息。...

    SQL Server 2005"备份集中的数据库备份与现有的数据库不同"解决方法 以前一直使用SQL Server2000,现在使用SQL Server2005,就在现在的项目中使 ...

  8. SQL Server中的零碎数据库还原

    This article explores the piecemeal database restore SQL Server feature and its benefits to minimize ...

  9. SQL Server差异备份的备份/还原原理

    SQL Server差异备份的备份/还原原理 记住一点:差异备份是基于最后一次完整备份的差异,而不是基于最后一次差异的差异 备份过程: 1-完整备份之后有无对数据库做过修改,如果有,记录数据库的最后L ...

最新文章

  1. DEDECMS整合DISCUZ的方法
  2. Linux安装ipvsadm工具查看ipvs
  3. C++primer 第 3 章 字符串、向量和数组 3 . 5 数组
  4. 高校开学返校最新消息!学生票乘车时间延长至5月31日!
  5. pythonsocket自动化教程_Python 的 Socket 编程教程
  6. 20172324 2018-2019-1《程序设计与数据结构》实验1报告
  7. SQL Server数据库快照
  8. What decide the USB OTG port as host or device
  9. 空间复杂度和时间复杂度
  10. 非参数检验统计量分析
  11. 三方支付 微信支付 支付宝支付 银联支付 分享
  12. c语言 大数开方,c语言求一个数的平方根
  13. 练习:《斗鱼视频》m3u8流视频采集下载+思路+Python
  14. 数据库开发工具——安装教程
  15. 1236mysql_MySQL1236错误解决方法_MySQL
  16. 进程调度时间计算方式
  17. 底部标签页+ViewPager+Fragment
  18. Redis线上做Keys命令引发的生产事故
  19. Bootstrap轮播插件,代码步骤
  20. 什么是HTTPS安全证书?

热门文章

  1. 彻底删除 Windows Defender 这个垃圾
  2. TypeError:e is undefined
  3. 北京实习求职的那些事
  4. 通过Google获得免费天气预报的方法
  5. 【华为OD机试 2023最新 】 机房布局(C++ 100%)
  6. 商家收款码,你想了解的都在这了
  7. 小程序技术助力智慧家居生态互联
  8. 计算机有趣的指令,好玩的CMD命令行~
  9. js中switch语句的参数问题
  10. LiveGBS中三种录像:设备录像、云端录像、实时录像的区别