前言:Express 版預設僅支援 Windows 驗證
SQL Server 2005 Express (隨 VS2005 安裝) 預設僅啟用 Windows Authentication,若需使用 sa 或 SQL 登入連線 (如連線字串 uid=sa;pwd=xxx),必須手動切換至 **混合模式** 並啟用 sa 帳號。本文提供圖文級步驟與常見陷阱排除。
先決條件:安裝管理工具
Express 版不含圖形管理介面,需另行下載安裝:
- SQL Server Management Studio Express (SSMSEE):安裝檔
SQLServer2005_SSMSEE.msi (免費)。
- 或使用 Visual Studio 內建的 伺服器總管 進行基本操作。
三步驟完成混合模式設定
步驟 1:啟用遠端連線 (TCP/IP + Named Pipes)
- 開啟 SQL Server 組態管理員 (或「外圍應用配置工具」)。
- 展開 SQL Server 2005 網路設定 → SQLEXPRESS 的通訊協定。
- 右鍵 TCP/IP → 啟用 → IP Addresses 索引標籤 → 確認 IPAll 的 TCP Port 設為
1433 (或自訂埠)。
- 同樣啟用 Named Pipes (本機連線較快)。
- 重啟 SQL Server (SQLEXPRESS) 服務 使設定生效。
步驟 2:切換伺服器驗證模式為混合模式
- 開啟 SSMSEE,使用 Windows 驗證 連線本機
.\SQLEXPRESS。
- 右鍵伺服器節點 → 屬性 → 安全性 頁籤。
- 伺服器驗證 區域選擇 SQL Server 和 Windows 驗證模式。
- 登入稽核 建議選 失敗和成功的登入 (利於稽核)。
- 點選 確定,**系統提示需重啟服務**,按確定重啟。
步驟 3:啟用 sa 帳號並設定強密碼
- 展開 安全性 → 登入 → 找到 sa。
- 右鍵 sa → 屬性 → 一般 頁籤:
- 確認 登入 核取方塊為 已啟用 (預設停用)。
- 輸入強密碼 (符合複雜度原則)。
- 狀態 頁籤:確認 登入 = 啟用、連線到資料庫引擎 = 授與。
- 點選 確定 完成。
連線字串範例與測試
Server=.\SQLEXPRESS;Database=MyDB;User ID=sa;Password=StrongPwd;Trusted_Connection=False;
Server=192.168.1.100,1433;Database=MyDB;User ID=sa;Password=StrongPwd;
在 SSMSEE 或應用程式中測試連線,成功即完成設定。
常見錯誤與排除
| 錯誤訊息 | 原因 | 解決方案 |
| 「已成功與伺服器建立連接,但是在登入過程中發生錯誤」 | sa 帳號仍為停用狀態 | 依步驟 3 啟用 sa 登入 |
| 「無法開啟連接」 / Timeout | TCP/IP 未啟用、防火牆阻擋、埠號錯誤、服務未啟動 | 檢查組態管理員、防火牆入站規則、服務狀態 |
| 「登入失敗,使用者 'sa'」 | 密碼錯誤、帳號鎖定、密碼原則違規 | 重設密碼、檢查登入失敗次數、密碼複雜度 |
| 「不信任的連接」 | 連線字串混用 Trusted_Connection=True 與 User ID | 移除 Trusted_Connection 或設為 False |
安全性強化建議 (生產環境必做)
- 重新命名
sa 帳號 (`ALTER LOGIN sa WITH NAME = [NewAdminName];`),降低暴力破解風險。
- 建立最低權限的應用程式專用 SQL 登入,僅授與特定資料庫
db_datareader/db_datawriter。
- 啟用 強制加密連線 (Force Encryption) 保護傳輸層憑證。
- 定期稽核 登入失敗事件 (Error Log / Extended Events)。
版本相容性備註
- SQL Server 2008 Express / 2012 Express / 2014 Express / 2016 Express / 2019 Express 設定邏輯相同,介面略有差異 (SSMS 取代 SSMSEE)。
- LocalDB (輕量級 Express) 預設僅支援 Windows 驗證,同樣需透過
SqlLocalDB 命令列或註冊表修改啟用混合模式。