xp_subdirs权限被拒绝

时间:2017-05-02 02:42:02

标签: sql sql-server authentication jobs sql-server-data-tools

运行时拒绝执行权限:

DECLARE @RootPath VARCHAR(1000) = '\\SomeUNCPath\SubFolder\'
...
EXEC master.sys.xp_subdirs @RootPath

来自调用包的作业,并且包具有单个SQL执行任务。我为文件夹上的用户“everyone”设置了完全控制权,所以我不知道在哪里可以查看。该程序包与部署程序包的位置具有不同的连接,因此创建作业并且连接使用Windows身份验证。在SQL Server消息的“查看上下文”页面中,调用者不是我,而是一个虚构的用户,但如果每个人都有完全控制权,则无关紧要。

如果我使用Windows身份验证登录到服务器,SQL代码在SQL Server Management Studio中可以正常工作,并且如果在Visual Studio的上下文中运行则可以正常工作 - 所以我认为它在两种情况下都像我一样运行。

当我运行包时,我收到错误:

  

'用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败。

当我通过Job运行包时,我得到了:

  

“对象'xp_subdirs'上的EXECUTE权限被拒绝,   数据库'mysqlsystemresource',架构'sys'。“可能失败   原因:查询问题,“ResultSet”属性未设置   正确,参数设置不正确,或连接未建立   正确“。

1 个答案:

答案 0 :(得分:0)

虚构用户需要具有sysadmin的SQL Server角色。好吧,至少这是有效的。我将不得不尝试使用其他权限来查看我需要的最低权限级别。

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/295174f9-30e8-4925-a9e5-49d073dbf3ab/executing-xpsubdirs-as-nonsysadmin?forum=sqlsecurity