CREATE ROLE (Transact-SQL)
在目前資料庫中建立新的資料庫角色。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure 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 權限。
範例
A.建立資料庫使用者所擁有的資料庫角色
下列範例會建立使用者 BenMiller 所擁有的資料庫角色 buyers。
USE AdventureWorks2012;
CREATE ROLE buyers AUTHORIZATION BenMiller;
GO
B.建立由固定資料庫角色所擁有的資料庫角色
下列範例會建立 db_securityadmin 固定資料庫角色所擁有的資料庫角色 auditors。
USE AdventureWorks2012;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO
請參閱
參考
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)