删除在SQL Server中创建的文件夹时拒绝访问

时间:2017-11-13 16:41:34

标签: sql-server directory xp-cmdshell

我正在使用xp_cmdshell创建目录但由于权限我无法删除它们,我甚至不允许查看文件夹的所有者。 我必须进入安全模式才能删除文件夹。 我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:1)

我认为这是一个ACL问题。

使用xp_cmdshell创建的目录由SQL Server(服务帐户)拥有,其访问权限从父级继承。

如果您必须在创建后修改目录的内容,则必须:

  • 在已拥有良好访问权限的另一个目录中创建您的目录。
  • 或者在创建后授予更多权限(使用xp_cmdshellicacls来操纵ACL)

例如,更改domain\group& d:\folder_path在以下代码段中,您可以将某个组(您的用户,管理员等等)完全控制到某个目录:

exec xp_cmdshell 'icacls "d:\folder_path" /grant "domain\group":(f)'

答案 1 :(得分:1)

危险,威尔罗宾逊,危险!

这听起来似乎从几个角度来看可能并不理想 - 安全性,面向未来和可扩展性。假设这些都不是您的代码的优先事项,请继续使用Edgard的答案。

否则,我会质疑任何在文件系统中有DBMS(直接)写文件夹的设计。我不怀疑你有你的理由,只是有一些非常大但非常明显的风险,直到你已经致力于这门课程之后才会咬你。无论你做什么,都可能会有更少风险和更直接的方式。