Wednesday, February 15, 2012

execute batch file as sql job

I'm trying schedule a batch file to run as a job from sql server agent. The batch file copies files from one server directory to a directory on another server. The batch file works properly when executed directly. The job is being executed under the sql service account login. I've given the service account access to both the source and destination directories.

When I try to run the job it fails with an "Access is denied" error on both the source and destination directories (as read from job history).

Any ideas?I'd try to log into the server under the sql service acct and try to execute the batch file directly that way. It may give you some more clues.

Beyond that, maybe place some output in the SP to verify the user it is running under when executed from the job.
SELECT SYSTEM_USER|||I can log in and run the job under the service account. I imagine there must be some kind of proxy account or something that it's run under. Like aspuser in .net.|||Create a simple table with a varchar column in it. From the stored procedure, insert SYSTEM_USER into the table. After the job executes, check the table and see what the user name was.
Something like:
CREATE tmpTable (c1 varchar(30) )
INSERT INTO tmpTable SELECT SYSTEM_USER|||maske sure the sql service is running under a domain account and that account has permissions over both directories.

No comments:

Post a Comment