通過禁止使用xp_cmdShell提高安全方案
xp_cmdshell可以讓系統管理員以操作系統命令行解釋器的方式執行給定的命令字符串,
並以文本行方式返回任何輸出,是一個功能非常強大的擴展存貯過程。
一般情況下,xp_cmdshell對管理員來說也是不必要的,xp_cmdshell的消除不會對Server造成
任何影響。
可以將xp_cmdshell消除:
Use Master
Exec sp_dropextendedproc N’xp_cmdshell’
Go
如果需要的話,可以把xp_cmdshell恢復回來:
Use Master
Exec sp_addextendedproc N’xp_cmdshell’, N’xplog70.dll’
Go
xp_cmdshell 操作系統命令外殼
這個過程是一個擴展存儲過程,用於執行指定命令串,並作爲文本行返回任何輸出。
語法:
xp_cmdshell command_string[,no_output]
command_string 要執行的命令串
no_output 不返回命令執行的輸出
說明:
在把xp_cmdshell的執行許可權授予用戶時,用戶將能夠在Windows NT命令
外殼執行運行SQL Server(通常是本地系統)的帳號有執行特權的任何
操作系統命令。
例:
1、EXEC master..xp_cmdshell "dir *.exe"
返回可執行文件的列表
2、EXEC master..xp_cmdshell "copy d:/test1.jpg e:/" no_output
不返回輸出
3、特別是執行
EXEC master..xp_cmdshell "net start awhost32"
EXEC master..xp_cmdshell "net stop awhost32"
可以啓動和停止遠程的PCAnywhere服務。對遠程服務器操作很有幫助。