sp_addrole (Transact-SQL)

在当前数据库中创建新的数据库角色。

重要说明重要提示

包含 sp_addrole 是为了与 Microsoft SQL Server 早期版本兼容,在将来的版本中可能不再支持此函数。请改用 CREATE ROLE

主题链接图标Transact-SQL 语法约定

语法

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'