2014-03-05 27 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相同。

相關問題