ALTER ROLE (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

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

Примечание

Для изменения ролей или удаления членов в Azure Synapse Analytics или Система платформы аналитики (PDW) используйте хранимые процедуры sp_addrolemember (Transact-SQL) и sp_droprolemember (Transact-SQL).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

-- Syntax for SQL Server (starting with 2012) and Azure SQL Database  
  
ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  
-- Syntax for SQL Server 2008, Azure Synapse Analytics and Parallel Data Warehouse
  
-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

role_name
ПРИМЕНИМО К: SQL Server (начиная с 2008), База данных SQL Azure

Указывает роль базы данных, которую нужно изменить.

ADD MEMBER database_principal
ПРИМЕНИМО К: SQL Server (начиная с 2012), База данных SQL Azure

Указывает на добавление участника базы данных к членству в роли базы данных.

  • database_principal является пользователем базы данных или ролью базы данных, определяемой пользователем.

  • database_principal не может быть предопределенной ролью базы данных или участником на уровне сервера.

DROP MEMBER database_principal
ПРИМЕНИМО К: SQL Server (начиная с 2012), База данных SQL Azure

Указывает на удаление участника базы из членства в роли базы данных.

  • database_principal является пользователем базы данных или ролью базы данных, определяемой пользователем.

  • database_principal не может быть предопределенной ролью базы данных или участником на уровне сервера.

WITH NAME = new_name
ПРИМЕНИМО К: SQL Server (начиная с 2008), База данных SQL Azure

Указывает на изменение имени определяемой пользователем роли базы данных. Новое имя еще не должно существовать в базе данных.

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

Разрешения

Для выполнения этой команды необходимо одно или несколько из указанных далее разрешений или членств.

  • Разрешение ALTER для роли
  • Разрешение ALTER ANY ROLE для базы данных
  • Членство в предопределенной роли базы данных db_securityadmin

Кроме того, чтобы изменить членство в предопределенной роли базы данных, требуется:

  • членство в предопределенной роли базы данных db_owner.

ограничения

Имя предопределенной роли базы данных изменить нельзя.

Метаданные

Приведенные далее системные представления содержат сведения о ролях базы данных и участниках базы данных.

Примеры

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

ПРИМЕНИМО К: SQL Server (начиная с 2008), База данных SQL

В следующем примере изменяется имя роли buyers на purchasing. Для этого примера используется образец базы данных AdventureWorks.

ALTER ROLE buyers WITH NAME = purchasing;  

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

ПРИМЕНИМО К: SQL Server (начиная с 2012), База данных SQL

В этом примере создается роль базы данных с именем Sales. В нем показано добавление пользователя базы данных Barry в членство и затем демонстрируется удаление Barry. Для этого примера используется образец базы данных AdventureWorks.

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

В. Добавление участника роли в специальные роли для Базы данных SQL Azure и Azure Synapse Analytics

ПРИМЕНИМО К: SQL Server (База данных SQL Azure и Azure Synapse), База данных SQL

В этом примере создается имя входа SQL в базе данных master, создается пользователь базы данных, связанный с этим именем входа на сервер, и в качестве участника специальной роли dbmanager добавляется пользователь базы данных. В этом примере пользователю предоставляются разрешения на создание и удаление баз данных на логическом сервере Базы данных SQL Azure. Запустите пример в базе данных master на логическом сервере Базы данных SQL Azure.

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

См. также

CREATE ROLE (Transact-SQL)
Участники (ядро СУБД)
DROP ROLE (Transact-SQL)
Хранимая процедура sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)