使用另一个用户帐户NT security执行sql查询
本文关键字:security 执行 sql 查询 NT 另一个 用户 | 更新日期: 2023-09-27 18:16:33
我正试图配置从SQL数据库(PeopleSoft)的数据馈送到要加载到SAP PCM的CSV文件。我需要这个过程在一个接一个的基础上运行,因此需要拉数据,而不是通过应用程序(如SSIS或Control m)安排或推送数据。
基本上SAP PCM有能力允许自定义编码(VBSCRIPT),这将允许我们在需要时运行任何类型的第三方脚本来执行SQL查询,这些脚本可以链接到应用程序本身的一个按钮,这样最终用户就可以按需触发。
我已经尝试使用具有使用SSO访问PeopleSoft数据库的特权的用户帐户直接从SAP PCM运行SQL。正如您所期望的那样,它可以工作并且输出所需的数据。
问题是我不想给最终用户相同级别的访问权限…所以我已经创建了一个NT服务帐户,它具有正确的数据库访问级别。-由于某些原因,我们在这里不使用SQL身份验证,所以不能只有一个SQL帐户。
我面临的问题是试图让SQL脚本作为服务帐户运行…我调查过RUN AS…但这将提示用户输入服务帐户密码——这就失去了意义。此外,XP之后似乎不支持其他替代方案——我们正在使用W7。
我已经看了一下windows服务,它可能有答案,但我之前从未构建过一个,我将完全从头开始,我不确定这是最好的前进方式。
因此,问题是——是否有可能使用一个不提示用户输入密码的服务帐户来执行SQL查询?-我想我可以把密码建立到exe中,这样它就不会在需要时存储明文。是否有人有任何例子VBSCRIPT(或其他),将允许我这样做吗?
谢谢
我不是很熟悉你正在使用的系统,但我刚刚写了一个小批处理文件,使用bcp将SQL存储过程复制到CSV。该文件包含用户名和PW。
它看起来像这样:
bcp "exec [your SQL SP]" queryout output.csv -S[your server] -U[username] -P[PW] -c -t,
正如你所说的不是很安全(我的将作为计划任务运行),但也许有另一种方法来做一些事情?可能对批处理文件进行加密。这里有一个免费的程序似乎可以做到这一点。来自简介:
高级BAT到EXE转换器不仅加密你的代码,但你可以创建一个真正的Windows本机。exe程序。