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

Sql server 删除在SQL Server中创建的文件夹时拒绝访问,sql-server,directory,xp-cmdshell,Sql Server,Directory,Xp Cmdshell,我正在使用xp_cmdshell创建目录,但由于权限的原因,我无法删除这些目录,甚至不允许我查看文件夹的所有者。 我必须进入安全模式才能删除文件夹。 我正在使用SQL Server 2008。我假设这是一个ACL问题 使用xp\u cmdshell创建的目录归SQL Server(服务帐户)所有,其访问权限从父目录继承 如果创建目录后必须修改目录的内容,则必须: 在另一个具有良好访问权限的目录中创建您的目录 或在创建后授予更多权限(使用xp\u cmdshell和icacls来操作ACL)

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

我假设这是一个ACL问题

使用
xp\u cmdshell
创建的目录归SQL Server(服务帐户)所有,其访问权限从父目录继承

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

  • 在另一个具有良好访问权限的目录中创建您的目录
  • 或在创建后授予更多权限(使用
    xp\u cmdshell
    icacls
    来操作ACL)
例如,将以下代码段中的
domain\group
d:\folder\u path
更改为任何适合您的内容,以赋予组(您的用户、管理员等)对目录的完全控制权:

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

我假设这是ACL问题

使用
xp\u cmdshell
创建的目录归SQL Server(服务帐户)所有,其访问权限从父目录继承

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

  • 在另一个具有良好访问权限的目录中创建您的目录
  • 或在创建后授予更多权限(使用
    xp\u cmdshell
    icacls
    来操作ACL)
例如,将以下代码段中的
domain\group
d:\folder\u path
更改为任何适合您的内容,以赋予组(您的用户、管理员等)对目录的完全控制权:

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

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

从几个角度来看,这听起来可能并不理想——安全性、经得起未来考验和可扩展性。假设这些都不是代码的优先级,那么请继续使用Edgard的答案


否则,我会质疑任何在文件系统中有DBMS(直接)写入文件夹的设计。我不怀疑你有你的理由,只是有一些非常大,但非常不明显的风险,在你已经投入到课程之前不会伤害你。无论你在做什么,都可能有风险更小、更直接的方法。

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

从几个角度来看,这听起来可能并不理想——安全性、经得起未来考验和可扩展性。假设这些都不是代码的优先级,那么请继续使用Edgard的答案


否则,我会质疑任何在文件系统中有DBMS(直接)写入文件夹的设计。我不怀疑你有你的理由,只是有一些非常大,但非常不明显的风险,在你已经投入到课程之前不会伤害你。无论您在做什么,都可能有风险更小、更直接的方法。

我正在处理Paradox表,需要将内容复制到SQL表上,表被lck文件锁定,因此我无法执行openrowset,我认为我可以从表中复制一个副本,然后执行openrowset,但后来我意识到我无法删除SQL过程创建的文件夹。我将尝试找到另一个风险较小的解决方案。我正在处理Paradox表,需要将内容复制到SQL表上,表被lck文件锁定,因此我无法执行openrowset,我认为我可以从表中复制一个副本,然后执行openrowset,但后来我意识到我无法删除SQL过程创建的文件夹。我将设法找到另一个风险较小的解决方案。