如何使用SQL Server代理运行CmdExec命令

开发技术 作者:小新 2024-04-12 18:15:01
这篇文章将为大家详细讲解有关如何使用SQL Server代理运行CmdExec命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。�...

这篇文章将为大家详细讲解有关如何使用SQL Server代理运行CmdExec命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

需求:调用网服务器(SMS SQL Server)上的短信发送接口(是一个存储过程)来发送(Stage SQL Server)上的数据内容到本Team 成员的手机上。这两台服务器,本地在拨VPN后可以访问。要求以本地的SQL Server做跳转,同时调用这两台服务器的数据接口。

  实现方法与步骤(在本地的SQL Server环境):

  1、创建一个SQL Server Job

  2、创建一个调用 操作系统(CmdExec)命令的Job步骤,调用命令以完成自动拨VPN的功能。

  代码如:

rasdial idc_name user_name user_password


  3、创建链接服务器SMS SQL Server和Stage SQL Server。

  4、创建一个读取Stage SQL Server上需要发送的数据内容,并调度SMS SQL Server的短信发送接口,完成短信发送的Job步骤(T-SQL)。

  5、创建一个CmdExec的Job步骤,调用命令完成自动断开VPN的功能。

  代码如:

rasdial idc_name /disconnect


  6、设置这三个步骤的先后顺序(2,4,5)。并设置调度频率为每天早上9点。

  该过程中可能涉及到两个问题,如下:

  1、分别调用两个服务器上的存储过程,可能需要打开分布式事务。简要步骤如下:

  运行dcomcnfg命令,组件服务,计算机,我的电脑,属性,MSDTC,安全配置

  选中“网络DTC访问”

  在客户端管理中选中“允许远程客户端”“允许远程管理”

  在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”

  保证DTC登陆账户为:NT AuthorityNetworkService

  2、执行CmdExec步骤的默认帐号是SQL Server代理的启动帐号,一般是 NT AUTHORITYNetworkService,该帐号不是sysadmin组,

  不具备执行该命令的权限。所以可能需要修改代理的启动帐号为有权限的帐号。

关于“如何使用SQL Server代理运行CmdExec命令”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_10180.html
sql server CmdExec