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

DBA 面試經典題:SQL Server 登入、用戶與角色的權限架構深度解析

     編輯:DB2 教學

面試核心問題

請區分 SQL Server 2000 中的登入、用戶、角色,並舉例說明。進階追問:登入 ID 是否等同用戶名?一個登入能否對應多個用戶?

教科書標準答案

  • 登入:僅允許連接 SQL Server 實例(Instance 級)。
  • 用戶:存在於特定資料庫內,控制該資料庫權限(Database 級)。DBA 將登入映射至資料庫用戶。
  • 角色:權限集合,便於批量管理。分為伺服器角色(Instance 級)與資料庫角色(Database 級)。用戶可隸屬多角色。

範例:sa 為用戶,public/db_owner/db_datareader 為角色。授予 sa db_owner 角色即擁有該資料庫完全控制權。

命題官深度理解(架構視角)

層級登入用戶角色
實例級✓✗✓ (伺服器角色)
資料庫級✗✓✓ (資料庫角色)
  • 登入決定能否進入 SQL 實例大門。
  • 用戶與登入對應,決定登入在特定資料庫擁有何種權限。
  • 一個登入可對應多個資料庫的不同用戶(跨資料庫權限隔離)。
  • 同一資料庫中,一個登入僅能對應一個用戶(一對一映射)。
  • 角色為權限管理便利性設計:將同類權限打包,授予角色而非逐一授權。

生動比喻:公司組織架構

  • SQL 實例 = 公司
  • 登入 = 員工證(入職即獲發,決定能否進公司大門)
  • 資料庫 = 部門
  • 用戶 = 部門花名冊(員工需被加入部門名單才能在該部門工作,一人可同時列入多部門名單)
  • 角色 = 職位/頭銜(董事長為公司級角色,部門經理為部門級角色;授予職位即獲得對應權責,調動人員只需增減職位指派)

關鍵總結

  1. 登入 = 實例級身分識別;用戶 = 資料庫級權限載體;角色 = 權限集合管理工具。
  2. 登入→用戶映射為多對多(跨資料庫),但單一資料庫內為一對一。
  3. 角色分層級(實例/資料庫),支援靈活授權與人員變動。
  4. 權限管理最佳實踐:以角色為核心,避免直接授予用戶細粒度權限。

掌握此三層架構與映射關係,即能精準設計企業級 SQL Server 安全性模型,也是 DBA 面試必過關鍵。

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