我的作业有一个存储过程,可以运行BCP到QUERYOUT一些数据。
如果我自己运行QUERYOUT命令,它就可以工作。
但是,如果我尝试在JOB中运行它,它会创建文件但是"挂起"并且数据永远不会放在文件中。这会永远挂起,所以我通常会终止BCP.exe。
我的问题是:
如何让SQL作业运行BCP来执行QUERYOUT并拥有执行此操作的权限?
QUERYOUT将转到C:\驱动器(所以没什么特别的东西)。
这个问题让我疯狂,并且无法在线阅读,看起来运行作业的用户需要该文件夹的权限。该文件夹未受保护或任何其他内容。
SQL作业的所有者是SQL中SYS ADMIN组的一部分。
非常感谢任何帮助。
答案 0 :(得分:12)
检查为SQL Server代理服务分配了哪些用户。打开services.msc,找到SQL Server代理并检查登录属性。将有一个LocalSystem用户(不太可能,基于你所描述的)或其他用户。
检查用户是否对您尝试编写BCP转储的文件夹具有“写入”权限。