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'