sp_addrole (Transact-SQL)
在目前資料庫中建立新的資料庫角色。
重要事項 |
---|
併入 sp_addrole 的目的,只是為了與舊版 Microsoft SQL Server 相容,未來的版本不一定會支援。 請改用 CREATE ROLE。 |
語法
sp_addrole [ @rolename = ] 'role' [ , [ @ownername = ] 'owner' ]
引數
[ @rolename = ] 'role'
這是新資料庫角色的名稱。 role 是 sysname,沒有預設值。 role 必須是有效的識別碼 (ID),而且不能是目前資料庫中已有的識別碼。[ @ownername =] 'owner'
這是新資料庫角色的擁有者。 owner 是 sysname,預設值是目前執行中的使用者。 owner 必須是目前資料庫的資料庫使用者或資料庫角色。
傳回碼值
0 (成功) 或 1 (失敗)
備註
SQL Server 資料庫角色的名稱,可以包含 1 到 128 個字元,其中包括字母、符號和數字。 資料庫角色的名稱不能包含反斜線字元 (\)、不能為 NULL,也不能是空字串 ('')。
在加入資料庫角色之後,請使用 sp_addrolemember (Transact-SQL),將主體加入角色中。 當您使用 GRANT、DENY 或 REVOKE 陳述式將權限套用至資料庫角色時,資料庫角色的成員會繼承那些權限,如同這些權限是直接套用至其帳戶。
[!附註]
無法建立新的伺服器角色。 角色只能在資料庫層級建立。
sp_addrole 不能在使用者自訂交易內部使用。
權限
需要資料庫的 CREATE ROLE 權限。 若要建立結構描述,就需要資料庫的 CREATE SCHEMA 權限。 如果將 owner 指定為使用者或群組,則需要該使用者或群組的 IMPERSONATE 權限。 如果將 owner 指定為角色,則需要該角色或該角色成員的 ALTER 權限。 如果擁有者被指定為應用程式角色,則需要該應用程式角色的 ALTER 權限。
範例
下列範例會在目前資料庫中加入一個名叫 Managers 的新角色。
EXEC sp_addrole 'Managers'