我正在使用xp_cmdshell创建目录但由于权限我无法删除它们,我甚至不允许查看文件夹的所有者。 我必须进入安全模式才能删除文件夹。 我正在使用SQL Server 2008。
答案 0 :(得分:1)
我认为这是一个ACL问题。
使用xp_cmdshell
创建的目录由SQL Server(服务帐户)拥有,其访问权限从父级继承。
如果您必须在创建后修改目录的内容,则必须:
xp_cmdshell
和icacls
来操纵ACL)例如,更改domain\group
& d:\folder_path
在以下代码段中,您可以将某个组(您的用户,管理员等等)完全控制到某个目录:
exec xp_cmdshell 'icacls "d:\folder_path" /grant "domain\group":(f)'
答案 1 :(得分:1)
危险,威尔罗宾逊,危险!
这听起来似乎从几个角度来看可能并不理想 - 安全性,面向未来和可扩展性。假设这些都不是您的代码的优先事项,请继续使用Edgard的答案。
否则,我会质疑任何在文件系统中有DBMS(直接)写文件夹的设计。我不怀疑你有你的理由,只是有一些非常大但非常明显的风险,直到你已经致力于这门课程之后才会咬你。无论你做什么,都可能会有更少风险和更直接的方式。