共用方式為


伺服器層級角色

SQL Server 會提供伺服器層級角色來協助您管理伺服器的權限。 這些角色是將其他主體組成群組的安全性主體。 伺服器層級角色的權限範圍為整個伺服器 (「角色」就像是 Windows 作業系統中的「群組」)。

固定伺服器角色是為了方便和回溯相容性所提供。 請盡可能指派更特定的權限。

SQL Server提供九個固定伺服器角色。 您無法變更授與固定伺服器角色的權限。 從 SQL Server 2012 開始,您可以建立使用者定義的伺服器角色,並將伺服器層級許可權新增至使用者定義的伺服器角色。

您可以將伺服器層級主體 (SQL Server 登入、Windows 帳戶和 Windows 群組) 新增至伺服器層級角色。 固定伺服器角色的每個成員可以對相同的角色增加其他登入。 使用者定義伺服器角色的成員無法將其他伺服器主體加入至此角色。

固定伺服器層級角色

下表顯示固定伺服器層級角色及其功能。

固定伺服器層級角色 描述
系統管理員 (sysadmin) 系統管理員 (sysadmin) 固定伺服器角色的成員可以執行伺服器中的所有活動。
serveradmin 伺服器管理員 (serveradmin) 固定伺服器角色的成員可以變更整個伺服器的組態選項及關閉伺服器。
securityadmin 安全性管理員 (securityadmin) 固定伺服器角色的成員可以管理登入及其屬性。 他們可以 GRANT、DENY 及 REVOKE 伺服器層級權限。 如果他們擁有資料庫的存取權,也可以 GRANT、DENY 和 REVOKE 資料庫層級權限。 此外,他們可以重設 SQL Server 登入的密碼。

** 安全性注意事項 ** 授與 Database Engine 存取權及設定使用者許可權的能力,可讓安全性系統管理員指派大部分的伺服器許可權。 角色 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 中授與、拒絕或撤銷權限。

固定伺服器角色的權限

每個固定伺服器角色都擁有指派給它的特定權限。 如需指派給伺服器角色之權限的圖表,請參閱 Database Engine Fixed Server and Fixed Database Roles(資料庫引擎固定伺服器與固定資料庫角色)。

重要

CONTROL SERVER 權限與 sysadmin 固定伺服器角色類似但沒有完全相同。 權限不代表角色成員資格,角色成員資格也不會授與權限。 (例如, CONTROL SERVER 不表示固定伺服器角色的成員 sysadmin 資格。) 不過,有時可以在角色與對等許可權之間模擬。 大部分 DBCC 命令與許多系統程序都需要 sysadmin 固定伺服器角色中的成員資格。 如需需要 sysadmin 成員資格的 171 個系統預存程式清單,請參閱下列由 Wols Wolter CONTROL SERVER 與 sysadmin/sa 撰寫的部落格文章:許可權、系統程式、DBCC、自動架構建立和許可權提升 - 注意事項

伺服器層級權限

只有伺服器層級權限可加入至使用者定義伺服器角色。 若要列出伺服器層級權限,請執行以下陳述式。 伺服器層級權限為:

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;  

如需權限的詳細資訊,請參閱權限 (資料庫引擎)sys.fn_builtin_permissions (Transact-SQL)

處理伺服器層級角色

下表將說明可用來處理伺服器層級角色的命令、檢視和函數。

功能 類型 Description
sp_helpsrvrole (Transact-SQL) 中繼資料 傳回伺服器層級角色的清單。
sp_helpsrvrolemember (Transact-SQL) 中繼資料 傳回伺服器層級角色成員的相關資訊。
sp_srvrolepermission (Transact-SQL) 中繼資料 顯示伺服器層級角色的權限。
IS_SRVROLEMEMBER (Transact-SQL) 中繼資料 指出 SQL Server 登入是否為指定伺服器層級角色的成員。
sys.server_role_members (Transact-SQL) 中繼資料 針對每個伺服器層級角色的每個成員,各傳回一個資料列。
sp_addsrvrolemember (Transact-SQL) Command 加入一個登入,做為伺服器層級角色的成員。 已被取代。 請改用 ALTER SERVER ROLE
sp_dropsrvrolemember (Transact-SQL) Command 從伺服器層級角色移除 SQL Server 登入,或是 Windows 使用者或群組。 已被取代。 請改用 ALTER SERVER ROLE
CREATE SERVER ROLE (Transact-SQL) Command 建立使用者定義伺服器角色。
ALTER SERVER ROLE (Transact-SQL) Command 變更伺服器角色的成員資格或變更使用者定義伺服器角色的名稱。
DROP SERVER ROLE (Transact-SQL) Command 移除使用者定義伺服器角色。
IS_SRVROLEMEMBER (Transact-SQL) 函式 判斷伺服器角色的成員資格。

另請參閱

資料庫層級角色
安全性目錄檢視 (Transact-SQL)
安全性函數 (Transact-SQL)
保護 SQL Server 的安全
GRANT 伺服器主體權限 (Transact-SQL)
REVOKE 伺服器主體權限 (Transact-SQL)
DENY 伺服器主體權限 (Transact-SQL)
建立伺服器角色