• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用SQL Server代理运行CmdExec命令

发布: 2009-10-21 11:08 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 94次 | 进入软件测试论坛讨论

领测软件测试网

使用SQL Server代理运行CmdExec命令  SQL Server数据库

关键字: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 Authority\NetworkService

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

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

  总结:本文总结问题的关键在于把握分布式事务的正确开启以及SQL Server代理中,通常执行Job的帐号AUTHORITY\NetworkService并不属于系统管理员组,代理执行一些任务失败时,注意观察所执行操作需要的权限,例如本文的执行CmdExec命令,就需要sysadmin或者操作系统管理员的权限。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: server Server SERVER sql SQL Sql 代理 命令 CmdExec


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网