Sql server 如何检查SQL代理服务帐户是否有权访问UNC目录

Sql server 如何检查SQL代理服务帐户是否有权访问UNC目录,sql-server,unc,Sql Server,Unc,我目前正在使用此查询来确定SQL是否具有权限 EXEC master.dbo.xp\u fileexist'\servername\sharename' 但是这个查询是以我登录的用户的身份运行的,我是否可以以SQL代理服务帐户的身份执行它来检查该用户是否有访问权限 据我所知,sql\u agent在system\NetworkService帐户下运行,它无权访问UNC路径(或)其他计算机 您可以通过转到控制面板->服务或sql server配置管理器更改运行sql\u代理的帐户。以下脚本将为您提

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

EXEC master.dbo.xp\u fileexist'\servername\sharename'


但是这个查询是以我登录的用户的身份运行的,我是否可以以SQL代理服务帐户的身份执行它来检查该用户是否有访问权限

据我所知,
sql\u agent
system\NetworkService
帐户下运行,它无权访问UNC路径(或)其他计算机


您可以通过转到
控制面板->服务
sql server配置管理器

更改运行
sql\u代理的帐户。以下脚本将为您提供所需内容:

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

我希望代理无法读取UNC路径。我将SQL代理服务更改为在作为域一部分的服务帐户下运行

很抱歉,我不想更改SQL代理帐户。我想手动运行上面显示的查询,但以SQL代理帐户的形式执行。如前所述,SQL代理在Network_服务帐户下运行,该帐户无权访问UNC共享。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么,以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用@Gourav我认为“将SQL代理服务更改为在作为域一部分的服务帐户下运行”可以作为一个答案,但我们没有链接。