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


ALTER ROLE (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL в хранилище Microsoft Fabric в базе данных SQL Microsoft Fabric в Microsoft Fabric

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

Примечание.

Чтобы добавить или удалить члены из ролей в Azure Synapse Analytics и Analytics Platform System (PDW), используйте sp_addrolemember (Transact-SQL) и sp_droprolemember (Transact-SQL).

Соглашения о синтаксисе Transact-SQL

Синтаксис

Синтаксис ДЛЯ SQL Server (начиная с 2012), Управляемый экземпляр SQL Azure, База данных SQL Azure и Microsoft Fabric.

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

Синтаксис для SQL Server до 2012 г.

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Аргументы

role_name
Область применения: SQL Server (начиная с 2008), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

ADD MEMBER database_principal
Область применения: SQL Server (начиная с 2012), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

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

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

DROP MEMBER database_principal
Область применения: SQL Server (начиная с 2012), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

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

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

WITH NAME = new_name
Область применения: SQL Server (начиная с 2008), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

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

Разрешения

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

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

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

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

ограничения

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

Метаданные

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

Примеры

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

Область применения: SQL Server (начиная с 2008), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

ALTER ROLE buyers WITH NAME = purchasing;  

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

Область применения: SQL Server (начиная с 2012), База данных SQL Azure, Управляемый экземпляр SQL Azure.

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

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

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

Область применения: База данных SQL Azure

В этом примере создается имя входа 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)