SQL Server 2005 重構安全模型,引入結構描述獨立於使用者,大幅提升權限管理靈活度。本文以概念釐清、關係圖解、實戰建立流程三維度,徹底講透五大核心實體關係。
五大核心實體定義
| 實體 | 層級 | 核心職責 |
| 伺服器登入 | 伺服器 | 驗證身分,允許連線實例 |
| 伺服器角色 | 伺服器 | 預定 9 組固定權限集合 (sysadmin、securityadmin…) |
| 資料庫使用者 | 資料庫 | 對應登入,擁有資料庫操作權限 |
| 資料庫角色 | 資料庫 | 可自訂權限集合 (db_owner、db_datareader…) |
| 結構描述 | 資料庫 | 物件容器/命名空間,擁有者可為角色/使用者 |
關鍵對應規則
- 登入 → (對應) → 資料庫使用者:一對多 (一登入可對應多資料庫使用者)
- 使用者 → (隸屬) → 資料庫角色:獲得角色權限
- 角色 → (擁有) → 結構描述:角色擁有者自動擁有結構描述物件權限
- 使用者 → (預設) → 結構描述:無結構描述前綴查詢時隱含預設結構描述
- 非預設結構描述物件 → 必須
結構描述.物件 完整限定
關係圖解

實戰:建立非 sa 帳戶完整流程
- 新增登入 Login1 (Windows/SSMS 驗證)
- 新增資料庫 DB1
- 新增結構描述 Schema1 (擁有者可設為角色/使用者)
- 新增使用者 User1:對應 Login1、預設結構描述 Schema1、角色勾選 db_owner
- 登入屬性→使用者對應:勾選 DB1、使用者填 User1、預設結構描述 Schema1
- 驗證:新建物件自動歸屬
Schema1.Table1
- 擴充:User1 擁有 Schema2 權限 → 可存取
Schema2.Table2
截圖流程:







進階觀察
- 多資料庫可建立同名使用者 (User1),但單一資料庫內使用者名稱唯一
- 結構描述分離使「物件所有權轉移」變為單純 ALTER SCHEMA 轉移,無需重建物件
- 最小權限原則:登入僅獲 CONNECT,使用者透過角色獲精細權限,結構描述隔離多租戶/多模組物件
掌握此五層關係,即掌握 SQL Server 2005+ 安全架構的靈魂。