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)