我目前正在一个环境中,能够从手动运行的SQL脚本中导出表格以编程方式提供帮助。
从脚本执行导出将是从存储过程中运行整个过程的第一步,因此我必须能够从SQL启动导出。
组织目前在大多数服务器上具有以下配置 -
最终,我希望能够调用一个传递以下参数的过程并让它执行导出。
目前BCP在功能方面似乎是一个完美的选择,但由于xp_cmdshell被禁用,我无法通过命令行调用它。
该组织非常小而且很乐意为安全解决方案而努力,到目前为止我的印象是他们对安全性有很好的控制。他们已经决定禁用xp_cmdshell,但如果我能提出一种安全的方法来允许使用它,我认为他们会很容易接受。
在我的研究中,我遇到了'EXECUTE AS'功能以及使用证书签署程序,但如果任何一种方法都可以帮助我们仍然无法解决问题我实现了我想要的目标。
另外,如果你有另一种解决方案可以让我达到同样的最终效果,我全都听见了!
答案 0 :(得分:0)
正如Aaron Bertrand所指出的,问题是xp_cmdshell已禁用。
您可以考虑两种选择。
使用BULK INSERT。需要INSERT和ADMINISTER BULK OPERATIONS权限
创建类型为"操作系统(CmdExec)"的SQL代理作业运行BCP。您可能需要代码来创建/更新作业以传递参数。