依據資料存取需求將使用者分組,例如會計系統:
Data Entry Operators、Accounting Data Entry Managers、Report Writers、Accountants、Auditors、Finance Managers。
命名原則:功能清晰、易辨識,便於後續授權與稽核。
SQL Server Administrators → sysadmin 伺服器角色SQL Server Users → 僅授予登入權限,預設 DB=master,無其他資料庫存取SQL Server Denied Users → 明確拒絕登入(拒絕優先於允許)SQL Server DB Creators → dbcreator 伺服器角色SQL Server Security Operators → securityadmin 伺服器角色SQL Server Database Security Operators → 各資料庫 db_securityadminSQL Server Developers → 開發環境 db_owner 或自訂權限DB_Name Users → 個別資料庫存取群組企業管理器僅能從現有登入清單選擇,無法直接選網域群組。須用 Query Analyzer 執行:
EXEC sp_addsrvrolemember 'DOMAIN\SQL Server Administrators', 'sysadmin';
EXEC sp_addsrvrolemember 'DOMAIN\SQL Server DB Creators', 'dbcreator';
EXEC sp_addsrvrolemember 'DOMAIN\SQL Server Security Operators', 'securityadmin';
參數需完整網域路徑 DOMAIN\Account。
-- 在目標資料庫內執行
EXEC sp_addrolemember 'db_datareader', 'DOMAIN\Accounting Users';
EXEC sp_addrolemember 'db_datawriter', 'DOMAIN\Data Entry Operators';
SQL Server 建立新資料庫時會複製 Model 的所有物件與權限。
預先在 Model 中:
1. 建立資料庫角色並授權。
2. 將 DB_Name Users 群組加入對應角色。
後續 CREATE DATABASE 即自動繼承,免逐一定義。
DENY 永遠優先於 GRANT。善用 SQL Server Denied Users 群組快速封鎖離職/異動人員存取,無需逐一撤銷授權。