SQLServer 服務器角色管理
- 2019 年 12 月 4 日
- 筆記
SQL Server 提供服務器級角色以幫助你管理服務器上的權限。 這些角色是可組合其他主體的安全主體。 服務器級角色的權限作用域為服務器範圍。 (「角色」類似於 Windows 操作系統中的「組」。)
角色

如上圖所示,共九種角色:
服務器級的固定角色 |
Description |
---|---|
sysadmin |
sysadmin 固定服務器角色的成員可以在服務器上執行任何活動。 |
serveradmin |
serveradmin 固定服務器角色的成員可以更改服務器範圍的配置選項和關閉服務器。 |
securityadmin |
securityadmin 固定服務器角色的成員可以管理登錄名及其屬性。 他們可以 GRANT、DENY 和 REVOKE 服務器級權限。 他們還可以 GRANT、DENY 和 REVOKE 數據庫級權限(如果他們具有數據庫的訪問權限)。 此外,他們還可以重置 SQL Server 登錄名的密碼。 重要提示: 授予 數據庫引擎 的訪問權限和配置用戶權限的能力使得安全管理員可以分配大多數服務器權限。securityadmin 角色應視為與 sysadmin 角色等效。 |
processadmin |
processadmin 固定服務器角色的成員可以終止在 SQL Server 實例中運行的進程。 |
setupadmin |
setupadmin 固定服務器角色的成員可以使用 Transact-SQL 語句添加和刪除鏈接服務器。 (使用 Management Studio時需要 sysadmin 成員資格。) |
bulkadmin |
bulkadmin 固定服務器角色的成員可以運行 BULK INSERT 語句。 |
diskadmin |
diskadmin 固定服務器角色用於管理磁盤文件。 |
dbcreator |
dbcreator 固定服務器角色的成員可以創建、更改、刪除和還原任何數據庫。 |
public |
每個 SQL Server 登錄名都屬於 public 服務器角色。 如果未向某個服務器主體授予或拒絕對某個安全對象的特定權限,該用戶將繼承授予該對象的 public 角色的權限。 只有在希望所有用戶都能使用對象時,才在對象上分配 Public 權限。 你無法更改具有 Public 角色的成員身份。 注意: public 與其他角色的實現方式不同,可通過 public 固定服務器角色授予、拒絕或調用權限。 |
權限

數據庫角色成員身份:
權限 |
解釋 |
---|---|
db_accessadmin |
在數據庫中添加或刪除windows nt4.0或windows2000用戶和組以及sql server用戶 |
db_backupoperator |
有備份數據庫的權限 |
db_datareader |
(查) 查看來自數據庫中所有用戶表的全部數據 |
db_datawriter |
(增刪改) 添加、更改或刪除來自數據庫中所有用戶表的數據 |
db_ddladmin |
添加、修改或除去數據庫中的對象 |
db_denydatareader |
拒絕選擇數據庫數據的權限 |
db_denydatawriter |
拒絕更改數據庫數據的權限 |
db_owner |
(完全權限) 進行所有數據庫角色活動,以及數據庫中的其他維護和配置活動,該角色的權限跨越所有其他固定數據庫角色。 |
db_securityadmin |
管理sql server2000數據庫角色的角色和成員,並管理數據庫中的語句和對象權限 |
public |
不可更改,為數據用戶維護的默認許可權限,每個數據庫用戶都屬於public角色的成員。 |
常用的為:db_datareader(查權限)db_datawriter(增刪改權限)db_owner(完全權限)
對於研發項目和測試的項目,我們可以只給予 public 權限,然後在用戶映射設置中給與對應數據庫的 所有者(ower) 權限。