SQL Server 2005 Express Edition (SSE) 取代 MSDE 2000,架構全面重設計,目標是:像 Access/JET 一樣簡單部署,卻擁有企業級資料庫的安全、擴展、管理能力。本文聚焦 SSE 的安全架構、認證模式、使用者執行個體、部署最佳實踐,助您建置安全的輕量級資料層。
| 場景 | SSE 解決方案 |
|---|---|
| 替代 JET/Access | 無 2GB/並發限制、支援預存程序/觸發器/檢視、完整安全性模型 (符合 HIPAA 等合規) |
| 單機擴展至多使用者 | 無需升級 Standard Edition,效能不降級 |
| 小型網站 / C/S 應用 | 輕量安裝、XCOPY 部署 .mdf、支援使用者執行個體 |
| Service Pack 就地升級 | 安裝程式可整合應用部署腳本,無人值守升級 |
| 共享實例命名慣例 | 預設實例名 SQLEXPRESS,連線字串標準化,跨機器部署無縫銜接 |
對中小企業/部門系統,資料外洩、遺損、竄改同樣致命。SSE 常部署於 Web 伺服器 (ASP.NET)、筆型電腦、離線終端,面臨:
因此,「安全」= 機密性 + 完整性 + 可用性 + 可審計性,且必須預設安全、部署簡單、維護低成本。
| MSDE 痛點 | SSE 改進 |
|---|---|
| 安裝複雜、需手動執行 sql -script | MSI 安裝、/qn 無人值守、整合應用安裝程式 |
| 預設 sa 空密碼、難以管理 | 安裝強制設定 sa 密碼、支援 Windows 驗證模式 |
| 無使用者執行個體,連線字串難管理 | 使用者執行個體 (User Instances / RANU):非管理員啟動專屬執行個體,掛載 .mdf,自動清理 |
| 修補困難、常導致應用中斷 | SP 就地升級、ClickOnce 應用自動更新 |
| 工具缺乏 (無 SSMS Express 早期版) | SSMS Express / Visual Studio 整合管理 |
Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True;AttachDbFilename=|DataDirectory|\App.mdf;
xp_cmdshell、OLE Automation、Ad Hoc Distributed Queries 等高風險擴展預存程序。BACKUP ... WITH MEDIAPASSWORD (舊版語法,建議改用外部加密)。|DataDirectory| 宏,指向 App_Data 目錄 (ASP.NET) 或 ClickOnce Data 目錄 (WinForms/WPF),避免硬編碼路徑。web.config / app.config 的 <connectionStrings> 區段,並啟用 configProtectionProvider (DPAPI/RSA) 加密設定區段。| 架構 | 連線字串關鍵 | 安全性等級 | 適用場景 |
|---|---|---|---|
| 共享執行個體 (預設) | Data Source=.\SQLEXPRESS;Integrated Security=True; | 高 (Windows 驗證) | 單機多應用、開發機 |
| 使用者執行個體 (RANU) | User Instance=True;AttachDbFilename=|DataDirectory|\App.mdf | 最高 (進程隔離、非管理員) | ASP.NET、ClickOnce、單機獨佔 |
| 遠端共享執行個體 | Data Source=Server\SQLEXPRESS;Integrated Security=True; | 中高 (需啟用 TCP/IP、防火牆、IPsec/SSL) | 部門伺服器、小型 C/S |
SSE 以「零配置、零管理、企業級安全」重新定義輕量資料庫。掌握 Windows 驗證 + 使用者執行個體 + 表面區域最小化 + 加密部署 + 持續修補 五大支柱,即可在預算與資源受限環境下,建置經得起攻擊的資料層。記住:安全不是功能,是流程。