首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET "sa 登入失敗" 徹底排查指南:連線字串、權限、服務三大核心檢查點

     編輯:程式設計綜合問答

錯誤現場還原

SqlException (0x80131904): 用戶 'sa' 登錄失敗。
at DataBase.Get_Table(String sqlStr) in ...\DataBase.cs:37
at index.Page_Load(...) in ...\index.aspx.cs:24

堆疊顯示在第 37 行 tmpCnn.Open() 拋出異常,明確指向資料庫連線驗證失敗。

三大核心排查清單

  1. 連線字串驗證
    在 Web.config 確認:
    <add name="ConStr" connectionString="Server=.;Database=MyDB;User ID=sa;Password=YourStrongPwd;Trusted_Connection=False;" />
    ⚠ 常見錯誤:密碼含特殊字元未轉義、資料庫名稱拼錯、使用 Windows 驗證卻指定 sa。
  2. SQL Server 服務與驗證模式
    • 服務管理員 → 確認 MSSQLSERVER 服務狀態為「正在執行」
    • SSMS 連線 → 伺服器屬性 → 安全性 → 伺服器驗證:選 SQL Server 和 Windows 驗證模式
    • sa 帳號 → 屬性 → 狀態 → 登入:啟用;密碼:重設並確認
  3. 網路與防火牆
    • SQL Server 組態管理器 → SQL Server 網路組態 → TCP/IP:啟用,IPAll 埠口設為 1433
    • Windows 防火牆 → 輸入規則 → 新增 TCP 1433 允許

快速驗證腳本

// 在 .aspx 頁面 Page_Load 加入臨時測試
using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString)) {
    try { cn.Open(); Response.Write("連線成功!"); }
    catch (Exception ex) { Response.Write("失敗:" + ex.Message); }
}

進階:避免使用 sa 的最佳實務

建立專用資料庫使用者,僅授予必要權限:

CREATE LOGIN AppUser WITH PASSWORD = 'ComplexP@ssw0rd';
CREATE USER AppUser FOR LOGIN AppUser;
ALTER ROLE db_datareader ADD MEMBER AppUser;
ALTER ROLE db_datawriter ADD MEMBER AppUser;

再修改連線字串使用 AppUser,大幅降低安全風險。

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