首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server vs MySQL 安全性深度對比:內部權限、外部攻擊面與腳本注入

     編輯:MySQL 資料庫相關知識

同環境下 SQL Server 與 MySQL 安全性實測分析 (Windows 2000 + SP4)

一、系統內部安全性

1. MySQL 權限控制缺陷 (預設安裝)

SELECT host,user,password,delete_priv,update_priv,drop_priv FROM user;
+-----------+------+------------------+-------------+-------------+-----------+
| host      | user | password         | delete_priv | update_priv | drop_priv |
+-----------+------+------------------+-------------+-------------+-----------+
| localhost | root | 0e4941f53f6fa106 | Y           | Y           | Y         |
| %         | root |                  | Y           | Y           | Y         |  <-- 任意主機無密碼 root
| localhost |      |                  | Y           | Y           | Y         |  <-- 本地匿名全權限
| %         |      |                  | N           | N           | N         |
+-----------+------+------------------+-------------+-------------+-----------+

風險: 第 2、3 行極度危險。匿名本地登錄即擁有完整 DDL/DML 權限。

修復:

DELETE FROM user WHERE host='%' AND user='root';
DELETE FROM user WHERE host='localhost' AND user='';
-- 或給 root 設強密碼

2. MySQL 安裝目錄權限

預設 C:\MySQL 繼承 C 槽 Everyone 全控,惡意用戶可刪除數據文件。
修復: 重設目錄 ACL,或安裝至非系統盤並嚴格權限控制。

3. SQL Server 權限與 sa 空密碼

  • 權限基於 master..syslogins,sa 預設密碼為空,極高風險。
  • 擴展預存程序 xp_cmdshell 可執行系統命令,本地提權隱患大。

修復:

USE master;
SELECT name,password FROM syslogins WHERE password IS NULL;  -- 掃描空密碼
EXEC sp_dropextendedproc 'xp_cmdshell';  -- 移除危險擴展

4. SQL Server 目錄權限與 Windows 整合認證

同 MySQL 目錄問題。Windows 整合認證導致系統管理員無需資料庫密碼即可操作資料庫,系統漏洞提權即資料庫失陷。

內部安全小結

  • 兩者預設均不達標。
  • SQL Server 有詳細登錄日誌,稍優於 MySQL。
  • 合理配置後,**MySQL 反而更安全** (不綁定 OS 權限,攻擊面較小)。

二、外部網絡安全性

1. 服務探測

  • MySQL 預設綁定 3306 (所有介面),易被掃描。
  • SQL Server 預設 1433,可改端口,但 **UDP 1434** 固定不可改,發送 0x02 即可探測到實際 TCP 端口、實例名、版本等。
    代碼示例 (C# UDP 掃描) 文中給出完整實現。

防禦: 防火牆/IPsec 限制來源 IP + 端口過濾 (防跳板攻擊)。

2. 密碼攻擊

  • 破解:字典/暴力/混合攻擊。對策:強密碼 + 同 IP 連接限流。
  • 監聽:明文傳輸下密碼複雜度無用。對策:**強制 SSL 加密傳輸**,監控丟包率異常發現監聽。

3. 腳本注入 (SQL Injection)

  • ASP+SQL Server / PHP+MySQL 皆受影響。危險字符:; ' " # -- $ 等。
  • 無銀彈,依賴開發人員參數化查詢、輸入驗證、最小權限原則。

總結

  • 外部威脅下,**SQL Server 受威脅更大** (歷史遠程溢出漏洞多、xp_cmdshell 執行系統命令、UDP 1434 探測難防)。
  • 配置得當時,**MySQL 相對更安全** (無 OS 整合認證綁定、無固定探測端口、無預設系統命令執行)。
  • 新漏洞層出不窮,持續修補與防禦纏度部署為上策。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved