做存储过程必须删除操作系统文件的能力吗?(Do stored procedures have the

2019-09-24 06:24发布

出于好奇,没有一个存储过程必须删除操作系统文件的能力吗?

如果不是,我将不得不做出这样的删除文件Windows批处理文件,然后运行使用OSQL存储过程。

Answer 1:

从技术上讲,有正确的权限,可以执行xp_cmdshell发出命令到OS(或调用批处理文件,等等),但它可能不是一个好主意。 如果你使用这种方法,是非常严格的权限。

编辑的清晰度。



Answer 2:

尝试这个

选项1使用xp_cmdshell的删除文件

xp_cmdshell 'del y:\file.dat'

选项2删除使用OLE自动化文件

DECLARE @ResultOP int
DECLARE @OLE_Obj  int

EXEC @ResultOP = sp_OACreate 'Scripting.FileSystemObject', @OLE_Obj OUTPUT
EXEC @ResultOP = sp_OAMethod @OLE_Obj, 'DeleteFile', NULL, 'y:\file.dat'
EXEC @ResultOP = sp_OADestroy @OLE_Obj


Answer 3:

你也可以使用一个CLR存储过程这一点。 这是主要原因为管理存储过程的存在之一,与以安全的方式操作系统进行交互。



文章来源: Do stored procedures have the ability to delete a file from the OS?