远程异地备份,SQL SERVER数据库进行备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误。
去服务,修改SQL server的启用账户为administrator或者新建一个用户,远程机也要建一个
还要确保启用了xp_cmdshell
查看是否开启了xp_cmdshell
1.打开SSMS管理工具,连接SQL SERVER服务器,输入下面的脚本语句
SELECT * FROM sys.configurations WHERE name=’xp_cmdshell’ OR name=’show advanced options’
GO
查看SQL中是否启用了xp_cmdshell,如果Enable or disable command shell的值为0,表示未启用xp_cmdshell

2.不使用脚本方式开启xp_cmdshell的方法:
使用鼠标的右键点击左边已连接的SQL服务器地址链接,在弹出的菜单中选择“Facets”,打开“查看方面”的界面。

3.在查看方面的界面中,点击方面后面的选择项。在弹出的选项中选择“外围应用配置器”

4.在下方的方面属性中找到XPCmdShellEnabled,将其值设置为True。完成设置之后点击确定使其设置生效。

5.使用下面的脚本查看相关的设置
SELECT * FROM sys.configurations WHERE name=’xp_cmdshell’ OR name=’show advanced options’
GO
可以看到相关的Enable or disable command shell的值为1,表示已经启用xp_cmdshell

6.使用脚本的方法来开启用xp_cmdshell,相关的脚本参看下面:
USE master
EXEC sp_configure ‘show advanced options’, 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure ‘xp_cmdshell’, 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure ‘show advanced options’, 0
RECONFIGURE WITH OVERRIDE

7.测试xp_cmdshell运行cmd命令,在sql中使用CMD中的net命令映射一个网络磁盘作为数据库的备份存放路径。从结果显示的命令成功中的提示来看xp_cmdshell运行cmd命令已无问题。

8.出于安全的考虑,可以在完成xp_cmdshell的使用之后,使用下面的命令来关闭xp_cmdshell的启用。

在SQL SERVER 2016中开启xp_cmdshell来运行cmd命令非常的方便有用,但可能会带来一些安全上的隐患,不常使用的话建议在完成使用后将其关闭。
问题:异地备份执行失败
解决办法:修改作业所有者,之前所有者是如图1,修改成sa即可