1、xp_cmdshell的啓用
xp_cmdshell 擴展存儲過程將命令字符串做爲操做系統命令 shell 執行,並以文本行的形式返回全部輸出。因爲xp_cmdshell 能夠執行任何操做系統命令,因此一旦SQL Server管理員賬號(如sa)被攻破,那麼***者就能夠利用xp_cmdshell 在SQL Server中執行操做系統命令,如:建立系統管理員,也就意味着系統的最高權限已在別人的掌控之中。因爲存在安全隱患,因此在SQL Server 2005中, xp_cmdshell 默認是關閉的。
兩種方式啓用xp_cmdshell
1.打開外圍應用配置器—>
功能的外圍應用配置器—>
實例名Database Enginexp_cmdshell—>
啓用
2.sp_configure
-- 容許配置高級選項
EXEC sp_configure 'show advanced options', 1
GO
-- 從新配置
RECONFIGURE
GO
-- 啓用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 0
GO
--從新配置
RECONFIGURE
GO
--執行想要的xp_cmdshell語句
Exec xp_cmdshell 'query user'
GO
--用完後,要記得將xp_cmdshell禁用(從安全角度安全考慮)
-- 容許配置高級選項
EXEC sp_configure 'show advanced options', 1
GO
-- 從新配置
RECONFIGURE
GO
-- 禁用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--從新配置
RECONFIGURE
2、開始備份
exec master..xp_cmdshell 'net use z: \\juwang\SQLBak 123456 /user:juwang\administrator'
//創建網絡路徑映射:網絡路徑,\\juwang\SQLBak;z:是映射網絡路徑對應本機的盤符;juwang是遠程計算機的名稱(也可寫IP地址)。administrator是登陸的用戶名,123456是登陸用戶的密碼(最好寫成"123456")
backup database hjx to disk='e:\hjx_backup.bak ' with init
備份hjx數據庫,with init 覆蓋,noinit追加
exec master..xp_cmdshell 'copy e:\hjx_backup.bak z:'
複製hjx_backup.bak文件到z:
exec master..xp_cmdshell 'del e:\hjx_backup.bak '
刪除本地備份文件
exec master..xp_cmdshell 'net use z: /delete'
刪除網絡映射盤z:sql