[英]Executing exe file in xp_cmdshell doesn't work
我在SQL Server中使用以下方法創建了一個用戶:
CREATE LOGIN adminuser WITH PASSWORD = 'ABCDegf123';
GO
EXEC master..sp_addsrvrolemember @loginame = N'adminuser', @rolename = N'sysadmin'
GO
然后,我與此用戶建立了聯系。
我想做的是觸發此ftp命令:
ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt
所以我創建了一個觸發器:
CREATE TRIGGER sss14
ON Table_1
AFTER INSERT
AS
DECLARE @CMDSQL VARCHAR(1000)
SET @CMDSQL = 'ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt'
EXEC master..xp_cmdshell @CMDSQL
但是,這不起作用。
請注意,使用xp_cmdshell
創建文件夾可以正常工作。 當我運行“代碼”時,它將啟動Visual Studio代碼作為后台進程
調用xp_cmdshell時,SQL Server不在乎輸出,也不考慮任何故障。 但是,您可以將輸出插入到臨時表中並查看結果。 請在下面的SSMS中運行以進行檢查。
DECLARE @CMDSQL VARCHAR(1000)
SET @CMDSQL = 'ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt'
create table #output(output varchar(2000))
insert into #output
Exec master..xp_cmdshell @CMDSQL
select * from #output
drop table #output
使用xp_cmdshell運行的命令使用SQL Server服務帳戶運行OS命令。 請檢查SQL Server服務帳戶是否具有執行ftp的權限。 如果沒有,請授予適當的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.