在 SQL Server 2012 SP2 实例上,查询
xp_cmdshell
'del \\morrison\backups\angelia\AS_ReportingServicesDW_MOLAP\ReportingServicesDW_MOLAP-20151116.abf'
输出失败:
访问被拒绝。
这两个都返回运行 SQL 引擎和 SQL 代理的 windows 帐户:
EXEC master..xp_cmdshell 'set username'
用户名=AngeliaSQL
EXEC xp_cmdshell 'whoami'
ntdomain\angeliasql
Windows 帐户对 \morrison\backups\angelia\AS_ReportingServicesDW_MOLAP\ 和文件夹中的所有文件具有完全控制权。
还有其他方法可以检查权限吗?
您需要有连接和权限。SQL Server 不会自动连接到网络资源。您可以在 SQL Server 内部或外部执行此操作,但必须在计算机上建立连接。如果存在权限问题,则 SQL 查询中的“网络使用”将返回更多信息,而不仅仅是“拒绝访问”。
解决方法是在文件夹结构中将服务帐户权限提高一级。在 \morrison\backups\ 上添加权限(以前在 \morrison\backups\angelia\ 上的权限)允许作业运行。