在 select 下使用 xp_cmdshell 进行 SQL 查询

Posted

技术标签:

【中文标题】在 select 下使用 xp_cmdshell 进行 SQL 查询【英文标题】:SQL query using xp_cmdshell under select 【发布时间】:2019-04-26 17:32:50 【问题描述】:

你知道如何在具有 dbo 权限的 sql 查询下运行 windows 命令我无法直接使用 exec 是否可以将 select 作为联合的第二个命令?

我想运行基本的windows命令,比如ipconfig,net user比如..

提前致谢

【问题讨论】:

您不能从 SELECT 语句中执行任何类型的过程。您可以使用在表格中插入结果并从中选择。 可以先插入再选择吗? 【参考方案1】:

这里是一个例子,如何将cmd shell的执行结果插入到一个Table中,然后你可以进行选择

declare @cmd as nvarchar(max)
--replace "dir c:\" by your cmd shell
set @cmd='exec master..xp_cmdshell "dir c:\"'
declare @mytab as table(id int identity(1,1),res nvarchar(200))
insert into @mytab exec(@cmd)

select * from @mytab

【讨论】:

谢谢,我真的想让它变得有点棘手,假设我已经在“cmd”了,如何从 windows 命令中创建这个并写入 sql server table dir c:\ 是否可能? 使用 sqlcmd docs.microsoft.com/en-us/sql/ssms/scripting/…

以上是关于在 select 下使用 xp_cmdshell 进行 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

数据库xp_cmdshell使用

SQL Server 阻止组件 xp_cmdshell

SQL Server如何启用xp_cmdshell组件

【提权】MSSQL提权之xp_cmdshell

xp_cmdshell是干啥的

sql server的bcp指令