分享方式:


CREATE ROLE (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

在目前資料庫中建立新的資料庫角色。

Transact-SQL 語法慣例

語法

CREATE ROLE role_name [ AUTHORIZATION owner_name ]  

引數

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

AUTHORIZATION owner_name
這是要擁有新角色的資料庫使用者或角色。 如果未指定任何使用者,該角色便由執行 CREATE ROLE 的使用者所擁有。 角色的擁有者,或是任何擁有角色的成員都可以新增或移除角色成員。

備註

角色是資料庫層級的安全性實體。 當您建立角色之後,請利用 GRANT、DENY 和 REVOKE,設定角色的資料庫層級權限。 若要在資料庫角色中新增成員,請使用 ALTER ROLE (Transact-SQL)。 如需詳細資訊,請參閱資料庫層級角色

您可以在 sys.database_role_members 和 sys.database_principals 目錄檢視中,看到資料庫角色。

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

警告

從 SQL Server 2005 開始,結構描述的行為已經變更。 結果是,假設結構描述相當於資料庫使用者的程式碼可能不會傳回正確的結果。 不應該在曾經使用下列任何一個 DDL 陳述式的資料庫中使用舊的目錄檢視 (包括 sysobjects):CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION。 在此類資料庫中,必須改用新的目錄檢視。 新的目錄檢視會考量 SQL Server 2005 中所導入的主體和結構描述的分隔。 如需目錄檢視的詳細資訊,請參閱目錄檢視 (Transact-SQL)

權限

需要資料庫的 CREATE ROLE 權限,或是 db_securityadmin 固定資料庫角色的成員資格。 當您使用 AUTHORIZATION 選項時,也必須具備下列權限:

  • 若要指派角色擁有權給另一位使用者,則需要該使用者的 IMPERSONATE 權限。

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

  • 若要指派角色的擁有權給應用程式角色,則需要應用程式角色的 ALTER 權限。

範例

下列範例使用 AdventureWorks 資料庫。

A. 建立資料庫使用者所擁有的資料庫角色

下列範例會建立使用者 buyers 所擁有的資料庫角色 BenMiller

CREATE ROLE buyers AUTHORIZATION BenMiller;  
GO  

B. 建立由固定資料庫角色所擁有的資料庫角色

下列範例會建立 auditors 固定資料庫角色所擁有的資料庫角色 db_securityadmin

CREATE ROLE auditors AUTHORIZATION db_securityadmin;  
GO  

另請參閱

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