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

SQL Server 資料庫安全管理完整體系:驗證模式、登入、角色、權限

     編輯:SQL Server 2005

安全體系架構

SQL Server 安全架構層級圖

SQL Server 安全採用分層防禦:伺服器層級 → 資料庫層級 → 結構描述/物件層級。核心元素:

  • 主體:登入、使用者、角色
  • 保護對象:伺服器、資料庫、結構描述、物件
  • 權限:GRANT/DENY/REVOKE 授權模型

固定伺服器角色

固定伺服器角色權限表
角色核心權限
sysadmin完整伺服器控制權(含關閉伺服器)
serveradmin伺服器設定變更
setupadmin連結伺服器、啟動預存程序管理
securityadmin登入管理、權限授予
processadmin結束處理序
dbcreator建立/修改/刪除資料庫
diskadmin磁碟檔案管理
bulkadmin執行 BULK INSERT

固定資料庫角色

固定資料庫角色權限表
角色核心權限
db_owner資料庫完全控制
db_securityadmin角色/權限管理
db_accessadmin使用者存取管理
db_backupoperator備份資料庫
db_ddladminDDL 操作
db_datareader讀取所有資料表
db_datawriter寫入所有資料表
db_denydatareader拒絕讀取
db_denydatawriter拒絕寫入

四大管理面向實作

1. 驗證模式設定

驗證模式設定介面 混合模式設定
  • Windows 驗證:僅允許 Windows 帳戶,最安全
  • 混合模式:允許 SQL Server 驗證(sa 帳戶),需強制複雜密碼

2. 登入管理

建立登入對話框 登入屬性-伺服器角色
  • 對應 Windows 登入或建立 SQL 登入
  • 指定預設資料庫、語言
  • 指派伺服器角色(如 sysadmin、dbcreator)
  • 啟用「強制密碼原則」「強制密碼到期」

3. 角色管理

資料庫角色建立-SSMS 角色成員管理 角色 T-SQL 語法
T-SQL 建立自訂角色:
CREATE ROLE AppReadOnly;
GRANT SELECT ON SCHEMA::dbo TO AppReadOnly;
EXEC sp_addrolemember 'AppReadOnly', 'AppUser';

4. 權限管理

物件權限設定 T-SQL
核心權限指令:
-- 授予物件權限
GRANT SELECT, INSERT, UPDATE ON dbo.Orders TO AppWriter;

-- 拒絕敏感資料存取
DENY SELECT ON dbo.EmployeeSalary TO AppReader;

-- 移除權限
REVOKE INSERT ON dbo.Orders FROM AppWriter;

最佳實務原則

  1. 最小權限原則:僅授予完成工作所需的最低權限
  2. 角色基礎授權:透過角色管理權限,避免直接對個別使用者授權
  3. 定期稽核:檢視 sys.server_principals、sys.database_permissions 確認權限狀態
  4. 保護 sa:重命名、強制複雜密碼、僅限緊急使用
  5. 審計追蹤:啟用 SQL Server Audit 記錄關鍵權限變更
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved