我想知道如何永久保持启用XP_cmdshell
。它是本地系统,我正在使用xp_cmdshell
用查询结果生成txt文件。
我无法在代码本身中启用xp_cmdshell
,因为它给了我一个错误,说我无法激活它,然后事务正在运行。
我为此进行了很多搜索,但不幸的是没有答案。
ps::我知道如何启用xp_cmdshell
,我想永远保持启用状态。
答案 0 :(得分:1)
可能不是。您可能可以使用服务器级DML触发器来捕获和关闭该命令,但我确实不建议这样做。
恕我直言,实际上只有两个不错的选择。首先,启用并配置审核日志记录以捕获正在重置的人员/内容,然后进行处理。由于这可能是某些公司/公司的安全程序,因此这可能是首选的处理方式。
XP_CmdShell非常方便,但是很难正确保护。本质上,您必须将其限制为仅SysAdmin使用,然后积极锁定SysAdmin权限。这很困难,因为SQL Server世界充斥着要求或假定他们具有SysAdmin的草率应用程序(内部和第三方)。
另一种可能性是使用其他一些更容易保护的方法来做同样的事情。 SSIS和SqlAgent都具有这样的功能。过去,我曾经成功使用过SqlAgent的CmdExec,但配置起来有些困难,但更容易保护,我建议尝试使用它。