我们有一个在 SQL Server 中运行的进程,它使用 UNC 路径在本地网络上执行 DIR 命令,以检查另一个系统生成的文件是否都存在,作为审计报告的一部分。
直到今天早上一切都很顺利,我们没有遇到任何问题。
昨晚,IT 人员为了安全起见加强了目标目录的一些权限。
现在dir \\server\shared\dir_name
失败了访问被拒绝错误。
我们可以针对本地驱动器或备用网络 UNC 路径运行此命令,没有任何问题。
无论我们是从 SQL Server 内部运行xp_cmdShell
还是从命令提示符运行(使用 SQL Server 帐户登录服务器后),我们都遇到同样的问题。
使用相关帐户登录服务器后,可以浏览网络,因此 Explorer 权限正常
所以它与SQL Server无关,也与SQL Server代理帐户无关。
它特定于一个网络目录的权限。
即使我们处于对该目录具有完全权限的域组中,我们也无法再从我们自己的帐户对该网络共享使用 Dir!
那么这里发生了什么事 - 是否有可能该Dir
命令以某种方式仅在 SQL Server 代理用户的一个目录共享上被阻止了?
答案1
事实证明,如果我们映射驱动器,它就会起作用。
网络或活动目录的奇怪变化意味着我们现在无法在 DIR 命令中使用 UNC 路径,但答案是将驱动器号映射到网络共享,然后运行该过程......