2014-03-05 26 views

回答

0

据我所知,sql_agentsystem\NetworkService帐户下运行,并且它无法访问其他计算机的UNC路径(OR)。

您可以通过转至control panel -> servicesSql server configuration manager来更改运行sql_agent的帐户。

+0

对不起,我不想更改SQL代理帐户。我想手动运行上面显示的查询,但是将其作为SQL代理帐户执行 – user1345260

+0

如上所述,SQL代理运行在无法访问UNC共享的Network_service帐户下。 – Rahul

0

下面的脚本应该得到你所追求的:

USE master 
GO 

DECLARE @ServiceAcct sysname, @Path as varchar(256) 
SET @Path = '\\UNC\Path\To\Test\Access' 

EXECUTE dbo.xp_instance_regread 
    @rootkey  = N'HKEY_LOCAL_MACHINE', 
    @key   = N'SYSTEM\CurrentControlSet\Services\MSSQLServer', 
    @value_name = N'ObjectName', 
    @value  = @ServiceAcct OUTPUT 

EXECUTE AS LOGIN = @ServiceAcct; 
EXEC master.dbo.xp_fileexist @Path 

EXECUTE  master.dbo.xp_instance_regread 
       @rootkey  = N'HKEY_LOCAL_MACHINE', 
       @key   = N'SYSTEM\CurrentControlSet\Services\SQLServerAgent', 
       @value_name = N'ObjectName', 
       @value  = @ServiceAcct OUTPUT 

EXECUTE AS LOGIN = @ServiceAcct; 
EXEC master.dbo.xp_fileexist @Path 
0

最重要的事情是,占执行SQLSERVR.EXE

被称为服务帐户的帐户必须有权访问UNC路径。

它与SQL Server(MSSQLSERVER)服务的acconut相同。

相关问题