我有一个问题,如果可能的话,我可以用一些想法来解决如何在不使用(或启用)的情况下实现所需的问题xp_cmdshell
。
我知道它xp_cmdshell
本身会带来风险,即使使用代理帐户,但是 - 在我们的环境中它被禁用并且说服 IT 经理启用它充其量是困难的。
我遇到的问题是我有一个存储过程,它从各种表中查找数据并将其全部放入表变量中。
我想做以下事情:
这需要在没有任何类型的用户输入的情况下自动发生,它的电子邮件端将由同一存储过程中的变量提供。
我已经想到了两种可能做到这一点的方法,都使用 bcp 和xp_cmdshell
.
第一种方法是创建一个临时表,从表变量中选择我想要的记录到临时表中,然后使用 bcp 来触发 SSIS 包或 SQL 代理作业,它将查询临时表,导出到 CSV 和 e-给我发邮件。
第二种方法是创建一个临时表,从表变量中选择我想要的记录放入临时表中,然后使用bcp将临时表选择为CSV文件,然后使用sp_send_dbmail
发送。
第三种选择可能是触发另一个 SP/函数,并让它执行上述任一方法,从而将新功能分开 - 但这只是为了让事情变得简单。
所以,我要问的是关于如何安全地实现这一目标的任何想法,最好不使用xp_cmdshell
. 我不能使用 PowerShell 或类似的技术,因为这里没有人知道 PowerShell,虽然我熟悉 VB.NET,但是我不确定这有什么帮助(如果有的话)。
如果您需要更多信息以提供帮助,请告诉我。