运行时拒绝执行权限:
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',数据库'mysqlsystemresource',架构'sys'上的EXECUTE权限被拒绝。”可能的失败原因:查询问题,“ResultSet”属性设置不正确,参数设置不正确或连接未正确建立。
虚构用户需要具有sysadmin的SQL Server角色。好吧,至少这是有效的。我将不得不尝试其他权限,以查看我需要的最低权限级别。