使用SQLServer代理运行CmdExec命令
需求:调用web服务器(SMS SQL Server)上的短信发送接口(一个存储过程),将(Stage SQL Server)上的数据内容发送到团队成员的手机上。这两台服务器拨号VPN后可以本地访问。需要跳转本地SQL Server,同时调用两个服务器的数据接口。
实现方法和步骤(在本地SQL Server环境下):
1 .创建SQL Server作业
2。创建一个调用操作系统(CmdExec)命令的作业步骤,完成自动拨打VPN的功能。
代码如下:
Rasdial IDC _ name user _ name user _ password
3 .创建链接服务器SMS SQL Server和临时SQL Server。
4。创建一个作业步骤(T-SQL)在Stage SQL Server上读取要发送的数据内容,调度SMS SQL Server的短信发送接口完成短信发送。
5。创建一个CmdExec作业步骤,调用命令完成自动断开VPN的功能。
代码,例如:
Rasdial IDC _ name/Disconnect
6。设置这三个步骤的顺序(2,4,5)。并将排班频率设置为每天早上9点。
这个过程可能涉及到两个问题,如下:
1。分别调用两台服务器上的存储过程,可能需要打开分布式事务。考试#大提示简单步骤如下:
运行dcomcnfg命令,组件服务,计算机,我的电脑,属性,MSDTC,安全
选择网络DTC访问
选择在客户端管理中允许远程客户端和允许远程管理
选择允许入站,允许出站和在事务管理通信中不要求身份验证
确保DTC登录帐户是NT authority网络服务
执行CmdExec步骤的默认帐户通常是SQL Server代理的启动帐户因此,可能有必要将代理的启动帐户更改为特权帐户。
总结:本文总结的关键是掌握分布式事务的正确打开,并且在SQL Server代理中,通常执行Job的account AUTHORITYNetworkService不属于系统管理员组。当代理无法执行某些任务时,请注意执行的操作所需的权限。例如,本文中CmdExec命令的执行需要sysadmin或操作系统管理员的权限。贴在:计算机等级考试_考试大【责任编辑:zj纠错】
0条评论