sp_addrole (Transact-SQL)
適用於:SQL Server
在目前資料庫中建立新的資料庫角色。
重要
sp_addrole
隨附於與舊版 SQL Server 的相容性,未來版本可能不支援。 請改用 CREATE ROLE 。
語法
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) 將主體新增至角色。 當 GRANT
、 DENY
或 REVOKE
語句用來將許可權套用至資料庫角色時,資料庫角色的成員會繼承這些許可權,就好像許可權直接套用至其帳戶一樣。
注意
無法建立新的伺服器角色。 角色只能在資料庫層級建立。
sp_addrole
無法在使用者定義的交易內使用。
權限
需要資料庫的 CREATE ROLE
權限。 如果建立架構,則需要 CREATE SCHEMA
在資料庫上。 如果 @ownername 指定為使用者或群組,則需要 IMPERSONATE
該使用者或群組。 如果 @ownername 指定為角色,則需要 ALTER
該角色或該角色成員的許可權。 如果擁有者指定為應用程式角色,則需要 ALTER
該應用程式角色的許可權。
範例
下列範例會將名為 Managers
的新角色新增至目前的資料庫。
EXEC sp_addrole 'Managers';