【问题标题】:bcp - dump via xp_cmdshell vs. sp_oaMethod Securitybcp - 通过 xp_cmdshell 与 sp_oaMethod 安全转储
【发布时间】:2012-11-16 15:39:25
【问题描述】:

我正在使用 Microsoft SQL Server 2008 R2,并尝试通过 bcp(使用计划的作业)转储表。首先,我使用 xp_cmdshell 实现了它,但我听说,出于安全原因,应该避免这种情况。

所以我的问题是:sp_oaMethod 是什么?应该使用吗?如果不是,为什么不呢?您能否提出其他可能性?

【问题讨论】:

  • 我最近在使用 sp_oa... 和写入文件 (FSO) 时遇到了可靠性问题,并毫无问题地移至 xp_cmdshell。我一直没有找到原因。不是答案,但可以帮助您确定您是否在围栏上。
  • 感谢您的回复......我不再被允许使用 xp_cmdshell - 这只是因为安全问题,而不是因为功能
  • 当您可以使用 CLR 支持时,为什么还要使用 sp_OA% 过程?它好多了,会给你更多的灵活性。虽然如果你只是想运行 bcp.exe,那么你可以简单地将它放在一个批处理文件中并从 SQL 代理作业中调用它,甚至直接调用 bcp.exe。
  • xp_cmdshell 可以安全使用,但如果存在与该 ms-sql 帐户相关的 sql 注入风险,则应禁用它。根本不使用它并不能帮助保护系统,这很愚蠢。

标签: sql-server security xp-cmdshell


【解决方案1】:

xp_cmdshell 更好的解决方案是使用“CmdExec”类型的 SQL 代理作业步骤或 “电源外壳”。

CmdExec 将是我对BCP.exe 的单线电话的偏好。创建作业步骤需要系统管理员凭据。

Powershell 是您的答案,如果您需要执行任何其他任务,例如压缩提取的文件并将其复制到网络共享中。

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    相关资源
    最近更新 更多