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

SQL Server 2005 架構、用戶、角色與登入觀念解析(二)

     編輯:關於SqlServer

權限管理演進歷程

第一階段:無權限管理

知道資料庫名與表名即可操作,如早期 Windows 3.x。不安全,資料易外洩。

第二階段:單一用戶/上鎖

設一把鎖(帳號密碼),只有持鑰匙者可存取。但無法追蹤誰拿了什麼,也無法區分權限細節。

第三階段:用戶-權限矩陣

建立清單:每個用戶對每個物件是否有權限。如:

物件1物件2物件3
張三YYN
李四YYY

物件少時可行,物件增至千萬時,每次存取都要掃描龐大矩陣,效能極差。

第四階段:引入架構(Schema)分組管理

將物件歸類放入「貨架」(架構),權限控管在架構層級:

  • 手冊第一頁:用戶 → 架構權限(張三可存取架構1、2)
  • 手冊第二頁:架構 → 物件清單(架構1 包含物件1-190)

存取時先查用戶有無架構權限,再定位物件,大幅縮小掃描範圍。這就是 SQL Server 2005 將「用戶」與「架構」分離的原因(SQL 2000 用戶即架構,一對一綁死)。

第五階段:角色(Role)簡化授權

公司擴大,員工增多,職務變動頻繁。若每人單獨設權限,維護負擔極大。解決方案:建立「角色」(如「專案經理」、「開發人員」),將權限指派給角色,用戶加入角色即繼承權限。人員異動只需調整角色成員,不必改動細部權限。

SQL Server 2005 的完整模型

登入(伺服器層級) → 用戶(資料庫層級) → 角色(權限集合) → 架構(物件容器) → 物件

  • 登入對應用戶(一對一或多對一)。
  • 用戶可屬於多個資料庫角色。
  • 角色擁有架構/物件權限。
  • 架構擁有者可完全控制架構內物件。

下一步

第三節將實作示範如何建立登入、用戶、角色、架構並指派權限,敬請期待。

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