知道資料庫名與表名即可操作,如早期 Windows 3.x。不安全,資料易外洩。
設一把鎖(帳號密碼),只有持鑰匙者可存取。但無法追蹤誰拿了什麼,也無法區分權限細節。
建立清單:每個用戶對每個物件是否有權限。如:
| 物件1 | 物件2 | 物件3 | |
|---|---|---|---|
| 張三 | Y | Y | N |
| 李四 | Y | Y | Y |
物件少時可行,物件增至千萬時,每次存取都要掃描龐大矩陣,效能極差。
將物件歸類放入「貨架」(架構),權限控管在架構層級:
存取時先查用戶有無架構權限,再定位物件,大幅縮小掃描範圍。這就是 SQL Server 2005 將「用戶」與「架構」分離的原因(SQL 2000 用戶即架構,一對一綁死)。
公司擴大,員工增多,職務變動頻繁。若每人單獨設權限,維護負擔極大。解決方案:建立「角色」(如「專案經理」、「開發人員」),將權限指派給角色,用戶加入角色即繼承權限。人員異動只需調整角色成員,不必改動細部權限。
登入(伺服器層級) → 用戶(資料庫層級) → 角色(權限集合) → 架構(物件容器) → 物件
第三節將實作示範如何建立登入、用戶、角色、架構並指派權限,敬請期待。