sp_addrole (Transact-SQL)

適用於:SQL Server

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

重要

sp_addrole 隨附於與舊版 SQL Server 的相容性,未來版本可能不支援。 請改用 CREATE ROLE

Transact-SQL 語法慣例

語法

sp_addrole
    [ @rolename = ] N'rolename'
    [ , [ @ownername = ] N'ownername' ]
[ ; ]

引數

[ @rolename = ] N'rolename'

新資料庫角色的名稱。 @rolename為 sysname,沒有預設值。 @rolename必須是有效的標識碼,而且目前資料庫中不能已經存在。

[ @ownername = ] N'ownername'

新資料庫角色的擁有者。 @ownername為 sysname,預設值為目前執行中的使用者。 @ownername必須是目前資料庫中的資料庫用戶或資料庫角色。

傳回碼值

0 (成功)或 1 (失敗)。

備註

SQL Server 資料庫角色的名稱可以包含 1 到 128 個字元,包括字母、符號和數位。 資料庫角色的名稱不能包含反斜杠字元 (\)、為 NULL或空字串串 ('')。

新增資料庫角色之後,請使用 sp_addrolemember (Transact-SQL) 將主體新增至角色。 當 GRANTDENYREVOKE 語句用來將許可權套用至資料庫角色時,資料庫角色的成員會繼承這些許可權,就好像許可權直接套用至其帳戶一樣。

注意

無法建立新的伺服器角色。 角色只能在資料庫層級建立。

sp_addrole 無法在使用者定義的交易內使用。

權限

需要資料庫的 CREATE ROLE 權限。 如果建立架構,則需要 CREATE SCHEMA 在資料庫上。 如果 @ownername 指定為使用者或群組,則需要 IMPERSONATE 該使用者或群組。 如果 @ownername 指定為角色,則需要 ALTER 該角色或該角色成員的許可權。 如果擁有者指定為應用程式角色,則需要 ALTER 該應用程式角色的許可權。

範例

下列範例會將名為 Managers 的新角色新增至目前的資料庫。

EXEC sp_addrole 'Managers';