首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 連接 Access 資料庫:密碼保護與連接字串設定實務

     編輯:關於C語言

兩種加密方式的關鍵差異

Access 提供兩種安全機制,行為截然不同:

1. 資料庫密碼(工具 → 安全性 → 設定資料庫密碼)

  • 單一密碼保護整個 .mdb/.accdb 檔案
  • 連接字串需包含 Jet OLEDB:Database Password 參數
  • 常見錯誤:嘗試用 User ID/Password 標準參數 → 無效
// 正確連接字串 (Access 2003 .mdb)
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data\db.mdb;Jet OLEDB:Database Password=yourpwd;

// Access 2007+ .accdb
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\data\db.accdb;Jet OLEDB:Database Password=yourpwd;

2. 使用者層級安全性(工具 → 安全性 → 使用者與群組帳戶)

  • 建立工作群組檔 (.mdw),指派使用者/群組權限
  • 連接字串使用標準 User ID/Password
  • 優勢:細粒度權限控制(資料表/查詢/表單/報表/巨集層級)
  • 劣勢:設定複雜、.mdw 檔遺失將無法存取、Access 2007+ 已棄用

作者實測發現

設定「使用者與群組帳戶」後,不修改連接字串即可連線(可能系統自動使用預設 Admin/空密碼),但使用者直接開啟檔案會提示輸入密碼,達到「防止隨意開啟編輯」的目的。

現代建議

  • 新專案優先考慮 SQL Server Express / LocalDB / SQLite,避免 Access 並發限制、檔案鎖定、32/64 位元驅動程式相容性問題
  • 若必須用 Access,請使用 Microsoft.ACE.OLEDB.12.0 提供者(支援 .accdb、64 位元)
  • 連接字串建議存放於 app.config / appsettings.json,勿硬編碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved