February 21, 2018 at 11:14 am
Hi
Im running the following in a SQL agent job but realised the script im trying to call and execute, didn't. I ran the steps below outside of the agent job:
--allow advanced options on server
EXEC sp_configure 'show advanced options', 1
GO
--install changes
Reconfigure with override
GO
--Enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--install changes
Reconfigure with override
GO
declare @sql varchar(8000)
SELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sql
SELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sql
--disable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--install changes
GO
Reconfigure with override
GO
--disable advanced options on server
EXEC sp_configure 'show advanced options', 0
GO
--install changes
Reconfigure with override
GO
I'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).
The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
February 21, 2018 at 1:11 pm
wak_no1 - Wednesday, February 21, 2018 11:14 AMI'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
If you are running the code from a SQL Agent job, you'll need to grant permissions on the folder to the SQL Agent service account. That could well be another account than the SQL Server service account.
Another option is to create credentials and use that to run the job (or jobstep).
February 21, 2018 at 1:50 pm
wak_no1 - Wednesday, February 21, 2018 11:14 AMHi
Im running the following in a SQL agent job but realised the script im trying to call and execute, didn't. I ran the steps below outside of the agent job:
--allow advanced options on server
EXEC sp_configure 'show advanced options', 1
GO
--install changes
Reconfigure with override
GO
--Enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--install changes
Reconfigure with override
GOdeclare @sql varchar(8000)
SELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sqlSELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sql--disable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--install changes
GO
Reconfigure with override
GO--disable advanced options on server
EXEC sp_configure 'show advanced options', 0
GO
--install changes
Reconfigure with override
GOI'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).
The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
It looks like you are referencing the admin share C$. Not sure how you would have set permissions on it though. However, access to the admin shares is limited to those in the administrators group. Maybe try creating a regular share for the script.
Sue
February 22, 2018 at 12:53 am
HanShi - Wednesday, February 21, 2018 1:11 PMwak_no1 - Wednesday, February 21, 2018 11:14 AMI'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
If you are running the code from a SQL Agent job, you'll need to grant permissions on the folder to the SQL Agent service account. That could well be another account than the SQL Server service account.
Another option is to create credentials and use that to run the job (or jobstep).
I'm running it as me, i'm an admin on the server. I've also added the SQL Agent service account as admin but still get the error.
February 22, 2018 at 1:34 am
Sue_H - Wednesday, February 21, 2018 1:50 PMwak_no1 - Wednesday, February 21, 2018 11:14 AMHi
Im running the following in a SQL agent job but realised the script im trying to call and execute, didn't. I ran the steps below outside of the agent job:
--allow advanced options on server
EXEC sp_configure 'show advanced options', 1
GO
--install changes
Reconfigure with override
GO
--Enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--install changes
Reconfigure with override
GOdeclare @sql varchar(8000)
SELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sqlSELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sql--disable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--install changes
GO
Reconfigure with override
GO--disable advanced options on server
EXEC sp_configure 'show advanced options', 0
GO
--install changes
Reconfigure with override
GOI'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).
The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
It looks like you are referencing the admin share C$. Not sure how you would have set permissions on it though. However, access to the admin shares is limited to those in the administrators group. Maybe try creating a regular share for the script.
Sue
Ok, so I tested this. I've changed the SQLCMD bit:
SELECT @sql='sqlcmd -E -S ' + 'server\instance -i C:\directory\directory\script1.sql'
EXEC xp_cmdshell @sql
SELECT @sql='sqlcmd -E -S ' + server\instance -i C:\directory\directory\script2.sql'
EXEC xp_cmdshell @sql
This now works, thanks.
I'm going to get the AD guys to amend the SQL service and SQL agent accounts to allow them access to the admin share.
February 22, 2018 at 2:05 am
wak_no1 - Thursday, February 22, 2018 1:34 AMSue_H - Wednesday, February 21, 2018 1:50 PMwak_no1 - Wednesday, February 21, 2018 11:14 AMHi
Im running the following in a SQL agent job but realised the script im trying to call and execute, didn't. I ran the steps below outside of the agent job:
--allow advanced options on server
EXEC sp_configure 'show advanced options', 1
GO
--install changes
Reconfigure with override
GO
--Enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--install changes
Reconfigure with override
GOdeclare @sql varchar(8000)
SELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sqlSELECT @sql='sqlcmd -E -S ' + @@SERVERNAME + ' -i \\' + cast(SERVERPROPERTY('MachineName') as varchar(max)) + '\C$\directory\test.sql'
EXEC xp_cmdshell @sql--disable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--install changes
GO
Reconfigure with override
GO--disable advanced options on server
EXEC sp_configure 'show advanced options', 0
GO
--install changes
Reconfigure with override
GOI'm getting: Sqlcmd: Error: Error occurred while opening or operating on file \\servername\C$\directory\test.sql (Reason: Access is denied).
The service account that's running sql has full read/write permissions on the share, I have full read/write permissions too but still get the error. I've verified the directory/file too.
What other possible causes could there be?
It looks like you are referencing the admin share C$. Not sure how you would have set permissions on it though. However, access to the admin shares is limited to those in the administrators group. Maybe try creating a regular share for the script.
Sue
I'm going to get the AD guys to amend the SQL service and SQL agent accounts to allow them access to the admin share.
You can't do that. Like Sue said, only admins have access to the admin share. You'd have to put the accounts into the local or domain admins group, which you really don't want to do. Create a regular share instead, so that you can set proper permissions on it.
John
Viewing 6 posts - 1 through 5 (of 5 total)
You must be logged in to reply to this topic. Login to reply