ALTER ROLE (Transact-SQL)
Добавляет членов в роль базы данных или изменяет имя определяемой пользователем роли базы данных.
Синтаксические обозначения в Transact-SQL
Синтаксис
ALTER ROLE role_name
{
[ ADD MEMBER database_principal ]
| [ DROP MEMBER database_principal ]
| WITH NAME = new_name
}
Аргументы
role_name
Имя роли, подлежащей изменению.ADD MEMBER участник_базы_данных
Добавляет заданного участника базы данных к роли базы данных. участник_базы_данных может быть пользователем или определенной пользователем ролью базы данных. участник_базы_данных не может быть фиксированной ролью базы данных или участником на уровне сервера.DROP MEMBER участник_базы_данных
Удаляет указанного участника базы данных из роли базы данных. участник_базы_данных может быть пользователем или определенной пользователем ролью базы данных. участник_базы_данных не может быть фиксированной ролью базы данных или участником на уровне сервера.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. Для добавления членов в предопределенную роль базы данных необходимо быть членом предопределенной роли базы данных db_owner.
Примеры
A.Изменение имени роли базы данных
В следующем примере изменяется имя роли buyers на purchasing.
USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO
Б.Добавление и удаление членов роли
В следующем примере создается роль с именем Sales, затем добавляется и удаляется пользователь с именем Barry.
CREATE ROLE Sales;
ALTER ROLE Sales ADD MEMBER Barry;
ALTER ROLE Sales DROP MEMBER Barry;
См. также
Справочник
Хранимая процедура sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)