首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 擴展預存程序實用清單:系統資訊、檔案操作、登錄表與錯誤日誌

     編輯:關於SqlServer

核心概念

**擴展預存程序 (xp_*)** 以 DLL 形式運行於 SQL Server 進程空間,**可存取作業系統資源** (檔案、登錄、網路、硬體資訊)。**權限極高,僅限 sysadmin 使用,生產環境嚴格管控。**

常用 xp_* 分類速查

系統版本與硬體

  • EXEC master..sp_msgetversion — 取得 SQL Server 版本號。
  • EXEC master..xp_fixeddrives — 列出固定磁碟及可用空間 (MB)。
  • EXEC master..xp_availablemedia — 列出磁碟機類型 (磁碟/光碟) 及可用空間 (位元組)。

檔案系統操作

  • EXEC master..xp_dirtree 'C:', 1, 1 — 列出目錄樹。
    參數:路徑、深度 (0=全遞歸)、是否顯示檔案 (1=是)。
  • EXEC master..xp_fileexist 'C:\backup.bak', @flag OUT — 檢測檔案存在性,@flag=1 存在。
  • EXEC master..xp_subdirs 'C:\WINNT' — 列出指定目錄下一級子目錄。

登錄表與 DSN

  • EXEC master..xp_enum_oledb_providers — 列出已安裝 OLE DB 提供者。
  • EXEC master..xp_enumcodepages — 列出已安裝代碼頁。
  • EXEC master..xp_enumdsn — 列出系統配置的 DSN (ODBC 資料源)。
  • EXEC master..xp_enumgroups — 列出 Windows 本地群組。

錯誤日誌與網路

  • EXEC master..xp_enumerrorlogs — 列出錯誤日誌檔案清單與最後更新時間。
  • EXEC master..xp_readerrorlog — 讀取**目前**錯誤日誌完整內容。
  • EXEC master..xp_getnetname — 取得 SQL Server 服務器電腦名稱。

進階:sp_addlogin 內部加密函數

pwdencrypt (內部未文件化) — 密碼雜湊函數,**僅供研究/審計,生產嚴禁直接呼叫**。

安全警示

  • **xp_cmdshell** (執行 OS 命令) **預設停用**,極度危險,**絕不啟用** 除非極特殊受控場景。
  • 所有 xp_* 運行於 SQL Server 進程,**崩潰會拖垮資料庫引擎**,**記憶體洩漏無保護**。
  • 現代替代方案:**CLR 整合 (SAFE/EXTERNAL_ACCESS)**、**Agent 作業**、**PowerShell 腳本**、**外部應用層 API**。

擴展預存程序是「核彈級」工具,**知其然更知其所以然**,僅在無 CLR/外部選項的舊版環境緊急救援時考慮,並嚴格審計留痕。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved