使用另一个用户帐户NT安全性执行SQL查询

时间:2014-08-06 09:29:51

标签: c# sql vb.net vbscript

我尝试将数据源从SQL数据库(PeopleSoft)配置为要加载到SAP PCM的CSV文件。我需要在adhock基础上运行此过程,因此需要提取数据,而不是通过SSIS或Control M等应用程序调度或推送数据。

基本上,SAP PCM能够允许自定义编码(VBSCRIPT),如果需要运行任何类型的第三方脚本来执行SQL QUERY,它可以链接到应用程序本身的按钮。所以最终用户可以根据需要进行调整。

我尝试使用有权使用SSO访问PeopleSoft数据库的用户帐户直接从SAP PCM运行SQL。正如您所期望的那样,可以输出所需的数据。

问题是我不想给最终用户提供相同级别的访问权限......所以我创建了一个具有正确数据库访问级别的NT服务帐户。 - 由于某些原因,我们不在此处使用SQL身份验证,因此无法拥有SQL帐户。

我面临的问题是尝试让SQL脚本作为服务帐户运行...我已经查看了RUN AS ..但这会提示用户输入服务帐户密码 - 这打败了这一点。此外,XP之后似乎不支持替代方案 - 我们使用的是W7。

我已经看过可以得到答案的Windows服务,但在我从头开始之前从未构建过一个,我不确定它是最好的前进方式。

问题是 - 是否可以使用不提示用户输入密码的服务帐户执行SQL查询? - 我认为我可以将密码构建到exe中,以便在需要时不存储明文。

有没有人有任何可以让我这样做的VBSCRIPT(或其他)示例?

谢谢

1 个答案:

答案 0 :(得分:0)

我并不熟悉您正在使用的系统,但我刚刚编写了一个使用bcp将SQL存储过程复制到CSV的批处理文件。该文件包含用户名和PW。

它看起来像这样:

bcp "exec [your SQL SP]" queryout output.csv -S[your server] -U[username] -P[PW] -c -t,

正如你所说的不太安全(我的将作为预定任务运行)但是可能还有另一种方法可以做些什么呢?也许加密批处理文件。有一个免费程序here似乎可以做到这一点。从模糊:

  

Advanced BAT to EXE Con​​verter不仅可以加密您的代码,还可以加密   创建一个实际的Windows本机.EXE程序。