`

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方法总结

    本文介绍了在SQL Server环境中如何恢复`xp_cmdshell`的功能,包括在SQL Server 2005版本下开启`xp_cmdshell`的具体步骤,以及解决常见问题的方法。这些方法对于那些需要恢复`xp_cmdshell`功能的人来说非常有用。值得...

    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中的一个扩展存储过程,允许数据库管理员在服务器上执行...

    xp_cmdshell开启与关闭

    xp_cmdshell的主要功能是将SQL Server与操作系统集成,允许管理员执行操作系统命令,如copy、move、del、mkdir等等。这样,管理员可以在SQL Server中执行操作系统命令,而不需要离开SQL Server环境。 xp_cmdshell的...

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

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

    使用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 语句 cmd 权限

    - **`xp_cmdshell`**:这是一个扩展存储过程,它允许SQL Server执行外部程序或批处理文件,通常用于系统管理和维护任务。 - **`sp_configure`**:这是一个系统存储过程,用于更改服务器配置选项。 - **`RECONFIGURE`...

    在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中实现文件存在的判断以及后续的删除操作。但务必谨慎使用这些功能,因为它们可能涉及系统安全,尤其是当涉及删除操作...

    sql cmd入侵修复资料

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

    cn_sql_server_2014_enterprise_edition_x64_dvd_3932882.iso

    cn_sql_server_2014_enterprise_edition_x64_dvd_3932882.iso,数据库安装镜像

    利用SQL语句得到代表该服务器唯一硬件信息-网卡ID

    本文将详细介绍如何在SQL Server 2005/2008环境中,利用SQL语句获取服务器的网卡ID,并讨论如何启用必要的扩展存储过程`xp_cmdshell`。 #### 获取网卡ID的方法 在SQL Server中获取网卡ID主要依赖于`xp_cmdshell`这...

    SQL server执行DOS命令并把结果保存到数据库.rar

    SQL Server提供了一个名为`xp_cmdshell`的扩展存储过程,它允许我们直接执行操作系统命令。使用`xp_cmdshell`,我们可以调用DOS命令并获取返回的结果。例如,我们可以执行一个简单的DOS命令如`dir`来列出目录内容: ...

Global site tag (gtag.js) - Google Analytics