一尘不染

如何授予对SQL Server代理的访问权限,以便能够写入/修改系统文件?

sql

我有一个具有存储过程的作业,该存储过程运行BCP以查询一些数据。

如果我自己运行QUERYOUT命令,它将起作用。

但是,如果尝试在JOB中运行它,它将创建文件,但会“挂起”,并且永远不会将数据放入文件中。这将永远挂起,因此我通常会终止BCP.exe。

我的问题是:

如何获得SQL作业以运行BCP来执行QUERYOUT并具有执行该权限的权限?

QUERYOUT将转到C:\驱动器(因此没有任何花哨的内容或其他内容)。

这个问题使我发疯,从联机阅读开始,运行作业的用户似乎需要该文件夹的权限。该文件夹不受保护或其他任何保护。

SQL作业的所有者是SQL的SYS ADMIN组的一部分。

任何帮助将不胜感激。


阅读 230

收藏
2021-05-23

共1个答案

一尘不染

检查分配给SQL Server代理服务的用户。打开services.msc,找到SQL
Server代理并检查“登录”属性。将有一个LocalSystem用户(不太可能根据您的描述)或另一个用户。

检查用户是否对您试图写入BCP转储的文件夹具有“写入”访问权限。

2021-05-23