`

sql server使用xp_cmdshell动态创建文件夹

阅读更多

创建sql server存储过程动态创建文件夹,文件夹名根据创建时间决定

 

  1. create procedure sp_createdir  
  2.     @dir nvarchar(4000),  
  3. as  
  4. begin  
  5.     declare @cmd nvarchar(4000)  
  6.     declare @now datetime  
  7.     set @now = getdate()  
  8.     set @dir = @dir + '\' +replace(replace(replace(convert(varchar, @now, 120), '-',''), ' ', ''),':', '') 
  9.     set @cmd = 'mkdir ' + @dir 
  10.     exec sp_configure 'show advanced options', 1    --允许配置高级选项 
  11.     reconfigure --重新配置 
  12.     exec sp_configure 'xp_cmdshell', 1  --启用xp_cmdshell 
  13.     reconfigure --重新配置 
  14.     exec xp_cmdshell @cmd 
  15.  
  16.     exec sp_configure 'xp_cmdshell', 0  --执行完成后出于安全考虑可以将xp_cmdshell关闭  
  17. end  

xp_cmdshell语法

 

 

xp_cmdshell {'command_string'} [, no_output]

参数

'command_string'

是在操作系统命令行解释器上执行的命令字符串。command_string 的数据类型为 varchar(255) 或 nvarchar(4000),没有默认值。command_string 不能包含一对以上的双引号。如果由 command_string 引用的文件路径或程序名称中有空格,则需要使用一对引号。如果使用嵌入空格不方便,可考虑使用 FAT 8.3 文件名作为解决办法。

no_output

是可选参数,表示执行给定的 command_string,但不向客户端返回任何输出。

返回代码值

0(成功)或 1(失败)

结果集

执行下列 xp_cmdshell 语句将返回当前目录的目录列表。

xp_cmdshell 'dir *.exe'

行以 nvarchar(255) 列的形式返回。

执行下列 xp_cmdshell 语句将返回随后的结果集:

xp_cmdshell 'dir *.exe', NO_OUTPUT

 

由于没有了解xp_cmdshell的参数定义,将@cmd参数设置为nvarchar(max),导致执行时出现错误“过程需要类型为'varchar'的参数'command_string'”。需要将@cmd定义为长度小于或等于4000的nvarchar类型变量。

文章来源:http://www.itnose.net/detail/6023571.html
更多文章:http://www.itnose.net/type/96.html

分享到:
评论

相关推荐

    SQL Server如何启用xp_cmdshell组件1

    在SQL Server中,`xp_cmdshell`是一个非常强大的系统存储过程,它允许数据库管理员执行操作系统级别的命令,并将结果返回到SQL Server环境中。然而,出于安全考虑,`xp_cmdshell`默认是禁用的,因为不恰当的使用可能...

    SQL Server阻止了对组件xp_cmdshell过程的解决方案.docx

    总的来说,理解和正确使用`xp_cmdshell`是SQL Server管理中的一个重要环节,尤其是在处理跨系统边界的任务时。但始终要牢记,安全永远是首要考虑的因素。在启用和使用`xp_cmdshell`时,务必谨慎行事。

    MS SQL入侵(小心 xp_cmdshell)

    `xp_cmdshell`是MS SQL Server中一个预编译的扩展存储过程,它允许SQL Server通过命令行执行操作系统级别的命令。这一功能本身设计用于方便数据库管理员执行一些维护任务,例如备份文件、清理日志等。但是,如果...

    SQL阻止组件xp_cmdshell过程解决方案

     SQLServer阻止了对组件'xp_cmdshell'的过程'sys.xp_cmdshell'的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure启用'xp_cmdshell'。有关启用'xp_cmdshell'的详细...

    XP_CMDSSQLSERVER扩展存储过程XP_CMDSHELL的简单应用

    XP_CMDSHELL存储过程是执行本机的CMD命令,要求系统登陆有SA权限,也就是说如果获得SQLSERVER的SA命令,那就可以在目标机为所欲为了,知名软件“流光”使用的应该也是这个存储过程来实现在目标机上的操作。

    sys.xp_cmdshell的使用方法,用处以及注意的几点

    然而,这里我们要讨论的是SQL Server中的一个特定功能,即`sys.xp_cmdshell`存储过程的使用方法、用途以及需要注意的要点。 `sys.xp_cmdshell`是SQL Server中的一个扩展存储过程,允许数据库管理员在服务器上执行...

    SQL Server 异地备份到远程共享文件夹异常处理

    1、解锁 SQL SERVER “xp_cmdshell”命令 打开SQL SERVER 新建查询窗口 -- 允许配置高级选项 EXEC sp_configure 'show advanced options', 1 GO -- 重新配置 RECONFIGURE GO -- 启用xp_cmdshell EXEC sp_configure '...

    mssql数据库提权之——xp_cmdshell执行系统命令

    2、 必须可以以某种方式执行sql语句,例如:webshell或者是1433端口的连接。 提权基本思路过程与原理 1.MSSQL在Windows server类的操作系统上,默认具有system权限。System权限在Windows server2003中权限仅比管理员...

    sql2005开启xp_cmdshell

    EXEC sp_configure ‘xp_cmdshell’, 1;RECONFIGURE;– 然后;dbcc addextendedproc(“xp_cmdshell”,”xplog70.dll”);– 或者 sp_addextendedproc xp_cmdshell,@dllname=’xplog70.dll’ 来恢复cm

    使用xp_cmdshell注销Windows登录用户(终端服务器超出最大连接数)

    解决这个问题的一种方法是通过SQL Server中的`xp_cmdshell`扩展存储过程来注销Windows登录用户。 `xp_cmdshell`是SQL Server提供的一种高级功能,它允许管理员执行操作系统级别的命令。使用`xp_cmdshell`,我们可以...

    sa权限下无xp_cmdshell下取权限又一简单方法.txt

    在SQL Server环境中,当拥有最高权限(sa)但无法使用扩展存储过程`xp_cmdshell`时,可以通过其他技术实现对系统权限的获取或文件操作等功能。本文将详细介绍一种利用`sp_oacreate`和`sp_oamethod`存储过程来创建、...

    sql server2008异地备份方法

    7. 关闭 xp_cmdshell,使用 EXEC sp_configure 'xp_cmdshell', 0。 作业计划 在作业计划中,选择相应的计划类型、开始时间、间隔时间等。 注意 在执行作业时,可能会遇到错误,例如无法获取 Windows NT 组/...

    sql server远程执行cmd命令

    在描述中提到的是一种使用C# Winform应用实现的方法,它借助了SQL Server的内置存储过程`xp_cmdshell`来实现远程CMD命令的执行。 `xp_cmdshell`是SQL Server提供的一种扩展存储过程,允许用户直接执行Windows命令行...

    在Sql Server中调用外部EXE执行程序引发的问题

    use master Exec xp_cmdshell 'mkdir d:\csj' --调用dos命令创建文件夹,(执行成功了!) Exec xp_cmdshell 'c:\calc.exe' --调用exe文件(但是执行exe文件,总一直显示“正在执行查询”) 三、如果出现问题 可能会...

    sql 文件操作大全

    根据给定的文件信息,我们将深入探讨SQL Server中与文件操作相关的高级知识点,特别是通过扩展存储过程`xp_cmdshell`来执行系统级别的命令。`xp_cmdshell`是SQL Server的一个功能强大但潜在风险较高的特性,它允许在...

    使用SQL Server判断文件是否存在后再删除(详解)

    总结来说,通过`xp_fileexist`和`xp_cmdshell`这两个扩展存储过程,我们可以方便地在SQL Server中实现文件存在的判断以及后续的删除操作。但务必谨慎使用这些功能,因为它们可能涉及系统安全,尤其是当涉及删除操作...

    cn_sql_server_2014_enterprise_edition_x64_dvd_3932882.iso

    cn_sql_server_2014_enterprise_edition_x64_dvd_3932882.iso,数据库安装镜像

    SQL SERVER 判断当前系统是否为64位操作系统

    1. **SQL Server 版本**:当前使用的SQL Server版本支持`xp_cmdshell`。 2. **启用xp_cmdshell**:默认情况下,`xp_cmdshell`是被禁用的,为了安全起见,SQL Server不会自动启用它。因此,在执行此脚本之前,需要先...

    sql cmd入侵修复资料

    在进行SQL Server数据库管理过程中,有时会遇到“未能找到存储过程 'master..xp_cmdshell'”的错误信息。这个错误通常出现在尝试调用扩展存储过程`xp_cmdshell`时,而该存储过程并未在系统中正确注册或配置。 #### ...

Global site tag (gtag.js) - Google Analytics