Поделиться через


ALTER ROLE (Transact-SQL)

Добавляет члены в роль базы данных или изменяет имя определяемой пользователем роли в SQL Server.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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
    Задает новое имя определяемой пользователем роли. Данное имя уже не должно существовать в базе данных. Имена предопределенных ролей базы данных изменить нельзя.

Замечания

Изменение имени роли базы данных не изменяет идентификационный номер, владельца или разрешения роли.

Роли базы данных видны в представлениях каталога 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.

Примеры

А.Изменение имени роли базы данных

В следующем примере изменяется имя роли buyers на purchasing.

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

Б.Добавление и удаление членов роли

В следующем примере создается роль с именем 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)

Основные понятия

Участники (компонент Database Engine)