ALTER ROLE (Transact-SQL)

在 SQL Server 中向数据库角色添加成员或更改用户定义的数据库角色的名称。

适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。

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

语法

-- SQL Server Syntax
ALTER ROLE role_name
{
      [ ADD MEMBER database_principal ]
    | [ DROP MEMBER database_principal ]
    | WITH NAME = new_name
}
[;]

-- Windows Azure SQL Database Syntax
ALTER ROLE role_name WITH NAME = new_name
[;]

-- Core Syntax (common to all SQL Server versions and SQL Database) 
ALTER ROLE role_name WITH NAME = new_name
[;]

参数

  • role_name
    要更改的角色的名称。

  • ADD MEMBER database_principal
    将指定的数据库主体添加到数据库角色中。 database_principal 可以是用户或用户定义的数据库角色。 database_principal 不能是固定数据库角色或服务器主体。

    适用于:SQL Server 2012 到 SQL Server 2014。

  • DROP MEMBER database_principal
    从数据库角色中删除指定的数据库主体。 database_principal 可以是用户或用户定义的数据库角色。 database_principal 不能是固定数据库角色或服务器主体。

    适用于:SQL Server 2012 到 SQL Server 2014。

  • WITH NAME =new_name
    指定用户定义的角色的新名称。 数据库中不得已存在此名称。 您不能更改固定数据库角色的名称。

注释

更改数据库角色的名称不会更改角色的 ID 号、所有者或权限。

可以在 sys.database_role_members 和 sys.database_principals 目录视图中查看数据库角色。

备注

从 SQL Server 2005 开始,架构的行为发生了更改。因此,假设架构与数据库用户等价的代码不再返回正确的结果。旧目录视图(包括 sysobjects)不应该用在曾使用过下列任何 DDL 语句的数据库中:CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE 或 ALTER AUTHORIZATION。在这类数据库中,必须改用新目录视图。新的目录视图将采用在 SQL Server 2005 中引入的使主体和架构分离的方法。有关目录视图的详细信息,请参阅目录视图 (Transact-SQL)。

权限

要求具有对数据库的 ALTER ANY ROLE 权限、具有对角色的 ALTER 权限或 db_securityadmin 中的成员身份。

示例

A.更改数据库角色的名称

以下示例将角色 buyers 的名称更改为 purchasing。

USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO

B.添加和删除角色成员

下面的示例创建一个名为 Sales 的角色,然后添加并删除一个名为 Barry 的用户。

适用于:SQL Server 2012 到 SQL Server 2014。

CREATE ROLE Sales;
ALTER ROLE Sales ADD MEMBER Barry;
ALTER ROLE Sales DROP MEMBER Barry;

请参阅

参考

CREATE ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

概念

主体(数据库引擎)