CREATE SERVER ROLE (Transact-SQL)

適用于:SQL Server (所有支援的版本)

建立新的使用者定義伺服器角色。

主題連結圖示Transact-SQL 語法慣例

Syntax

CREATE SERVER ROLE role_name [ AUTHORIZATION server_principal ]  

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

role_name
這是即將建立的伺服器角色名稱。

AUTHORIZATION server_principal
這是即將擁有新伺服器角色的登入。 如果未指定任何登入,該伺服器角色便由執行 CREATE SERVER ROLE 的登入所擁有。

備註

伺服器角色是伺服器層級安全性實體。 當您建立伺服器角色之後,請利用 GRANT、DENY 和 REVOKE,設定角色的伺服器層級權限。 若要在伺服器角色中新增或移除登入,請使用 ALTER SERVER ROLE (Transact-SQL) 。 若要卸載伺服器角色,請使用 DROP SERVER ROLE (Transact-SQL) 。 如需詳細資訊,請參閱 sys.server_principals (Transact-SQL)

您可以藉由查詢 sys.server_role_memberssys.server_principals 目錄檢視,檢視伺服器角色。

不能將資料庫層級安全性實體授與伺服器角色。 若要建立資料庫角色,請參閱 CREATE ROLE (Transact-SQL)

如需設計權限系統的資訊,請參閱 資料庫引擎權限使用者入門

權限

需要 CREATE SERVER ROLE 權限或系統管理員 (sysadmin) 固定伺服器角色中的成員資格。

此外,也需要登入之 server_principal 的 IMPERSONATE、作為 server_principal之伺服器角色的 ALTER 權限,或作為 server_principal 之 Windows 群組中的成員資格。

這會引發 Audit Server Principal Management 事件,且物件類型設定為伺服器角色而事件類型設定為新增。

當您使用 AUTHORIZATION 選項指派伺服器角色擁有權時,也必須具備下列權限:

  • 若要指派伺服器角色擁有權給另一個登入,則需要該登入的 IMPERSONATE 權限。

  • 若要指派伺服器角色擁有權給另一個伺服器角色,則需要收件者伺服器角色中的成員資格,或該伺服器角色的 ALTER 權限。

範例

A. 建立登入所擁有的伺服器角色

下列範例會建立登入 buyers 所擁有的伺服器角色 BenMiller

USE master;  
CREATE SERVER ROLE buyers AUTHORIZATION BenMiller;  
GO  

B. 建立固定伺服器角色所擁有的伺服器角色

下列範例會建立固定伺服器角色 auditors 所擁有的伺服器角色 securityadmin

USE master;  
CREATE SERVER ROLE auditors AUTHORIZATION securityadmin;  
GO  

另請參閱

DROP SERVER ROLE (Transact-SQL)
主體 (Database Engine)
EVENTDATA (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)
資料庫引擎權限使用者入門