如何检查SQL代理服务帐户是否可以访问UNC目录

时间:2014-03-05 11:25:41

标签: sql-server unc

我目前正在使用此查询来确定SQL是否具有权限,

EXEC master.dbo.xp_fileexist'\ servername \ sharename'

但是此查询正在以我登录的用户身份运行,是否有任何方法可以将其作为SQL代理服务帐户执行以检查该用户是否具有访问权限?

3 个答案:

答案 0 :(得分:0)

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

您可以转到sql_agentcontrol panel -> services更改运行Sql server configuration manager的帐户。

答案 1 :(得分: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

答案 2 :(得分:0)

我希望Rahul该代理无法读取UNC路径。我将SQL Agent Service更改为在域的一部分服务帐户下运行。 https://docs.microsoft.com/en-us/sql/ssms/agent/set-service-startup-account-sql-server-agent-sql-server-configuration-manager?view=sql-server-2017