SQL Server 驗證模式 (標準連接)
-- 標準格式
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
-- 本地 Express 實例範例
Server=.\SQLEXPRESS;Database=testDB;Uid=sa;Pwd=123456;
Windows 整合驗證模式
使用目前 Windows 登入身分連線,不需在連接字串提供帳密:
-- 方式 1: Integrated Security = True
Data Source=ServerName;Initial Catalog=DBName;Integrated Security=True;
-- 方式 2: Integrated Security = SSPI (相當於 True,舊版相容)
Data Source=ServerName;Integrated Security=SSPI;
-- 完整參數範例
Data Source=LocalHost;Initial Catalog=testDB;Integrated Security=SSPI;Persist Security Info=False;Workstation Id=MyPC;Packet Size=4096;
關鍵屬性詳細說明
| 屬性 | 說明 | 預設值 | 備註 |
| Data Source / Server | 伺服器位址、實例名稱 | - | 本機可用 . 或 (local) |
| Initial Catalog / Database | 預設資料庫名稱 | master | 建議明確指定 |
| User Id / Uid | SQL 登入帳號 | - | SQL 驗證必填 |
| Password / Pwd | SQL 登入密碼 | - | SQL 驗證必填 |
| Integrated Security | 啟用 Windows 驗證 | False | True/SSPI/Yes 皆可 |
| Persist Security Info | 是否保留安全資訊 | False | 建議 False 增強安全 |
| Connect Timeout | 連線逾時秒數 | 15 | 網路不穩可調大 |
| Packet Size | 網路封包大小 | 4096 | 大量資料傳輸可調大 |
驗證模式選擇決策表
| 場景 | 推薦模式 | 連接字串關鍵 |
| 應用程式與 DB 同網域、受管服務帳號 | Windows 整合驗證 | Integrated Security=True |
| 跨網域/工作群組、非 Windows 用戶端 | SQL Server 驗證 | Uid=...;Pwd=... |
| 雲端/容器部署、CI/CD 管線 | SQL Server 驗證 | 環境變數注入帳密 |
| 舊版應用程式相容性需求 | SQL Server 驗證 | 既有帳密管理機制 |
常見連線問題排查
- 錯誤 18456:檢查登入名稱拼寫、密碼正確性、帳號是否鎖定/停用
- 錯誤 40/26/10060:確認伺服器名稱、執行個體名稱、防火牆 1433 埠、SQL Browser 服務
- 整合驗證失敗:確認應用程式執行身分 (IIS 應用程式集區身分、Windows 服務登入帳號) 有資料庫權限
.NET 程式碼建立連線範例
// SQL 驗證
var connStr = "Server=.;Database=TestDB;User Id=sa;Password=123456;";
// Windows 整合驗證
var connStr = "Server=.;Database=TestDB;Integrated Security=True;";
using (var conn = new SqlConnection(connStr))
{
conn.Open();
// 執行命令...
}