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 个字符,包括字母、符号和数字。 数据库角色的名称不能包含反斜杠字符(\
)、be NULL
或空字符串(''
)。
添加数据库角色后,使用 sp_addrolemember (Transact-SQL) 将主体添加到角色。 使用或DENY
REVOKE
语句将权限应用于数据库角色时GRANT
,数据库角色的成员将继承这些权限,就好像权限直接应用于其帐户一样。
注意
无法创建新的服务器角色。 只能在数据库级别上创建角色。
sp_addrole
不能在用户定义的事务中使用。
权限
需要对数据库拥有 CREATE ROLE
权限。 如果创建架构,则需要 CREATE SCHEMA
对数据库。 如果 @ownername 指定为用户或组,则需要 IMPERSONATE
该用户或组。 如果 @ownername 指定为角色,则需要 ALTER
对该角色或该角色的成员具有权限。 如果将所有者指定为应用程序角色,则需要 ALTER
对该应用程序角色具有权限。
示例
以下示例向当前数据库中添加名为 Managers
的新角色。
EXEC sp_addrole 'Managers';