SQL Server ИЗМЕНИТЬ РОЛЬ

В этом руководстве вы узнаете, как использовать оператор SQL Server ALTER ROLE для переименования роли, добавления члена в роль и удаления члена из роли.

Введение в оператор SQL Server ALTER ROLE

Оператор ALTER ROLE позволяет:

  • Переименовать роль
  • Добавить участника к роли
  • Удалить участника из роли

Следующая инструкция ALTER ROLE … WITH NAME переименовывает роль:

ALTER ROLE role_name 
WITH NAME = new_name;

В этом синтаксисе:

  • Сначала укажите имя роли после ключевых слов ALTER ROLE.
  • Во-вторых, укажите новое имя роли в предложении WITH NAME.

Чтобы добавить участника к роли, используйте оператор ALTER ROLE… ADD MEMBER:

ALTER ROLE role_name
ADD MEMBER database_principal;

В этом утверждении database_principal — это пользователь базы данных или определяемая пользователем роль базы данных. Это не может быть фиксированная роль базы данных или принципал сервера.

Чтобы удалить участника из роли, используйте оператор ALTER ROLE … DROP MEMBER:

ALTER ROLE role_name
DROP MEMBER database_principal;

Примеры операторов SQL Server ALTER ROLE

В следующих примерах мы будем использовать базу данных BikeStores.

1) Использование SQL Server ALTER ROLE для переименования роли

Сначала создайте новую роль под названием production:

CREATE ROLE production;

Во-вторых, переименуйте роль production в manufacturing с помощью оператора ALTER ROLE:

ALTER ROLE production
WITH NAME = manufacturing;

2) Пример использования SQL Server ALTER ROLE для добавления члена в роль

Сначала создайте новый логин с именем robert:

CREATE LOGIN robert 
WITH PASSWORD = 'Uikbm!#90';

Во-вторых, создайте нового пользователя для входа robert:

CREATE USER robert 
FOR LOGIN robert;

В-третьих, добавьте пользователя robert к роли manufacturing:

ALTER ROLE manufacturing 
ADD MEMBER robert;

Следующий запрос проверяет, является ли пользователь robert членом роли manufacturing:

SELECT
  r.name role_name,
  r.type role_type,
  r.type_desc role_type_desc,
  m.name member_name,
  m.type member_type,
  m.type_desc meber_type_desc
FROM sys.database_principals r
INNER JOIN sys.database_role_members rm ON rm.role_principal_id = r.principal_id
INNER JOIN sys.database_principals m ON m.principal_id = rm.member_principal_id
WHERE r.name ='manufacturing';

Выход:

3) Пример использования SQL Server ALTER ROLE для удаления члена из роли

В следующем примере используется ALTER ROLE … DROP MEMBER для удаления пользователя robert из роли manufacturing:

ALTER ROLE manufacturing
DROP MEMBER robert;

Краткое содержание

  • Используйте команду ALTER ROLE … WITH NAME, чтобы переименовать роль.
  • Используйте команду ALTER ROLE … ADD MEMBER, чтобы добавить участника к роли.
  • Используйте команду ALTER ROLE … DROP MEMBER для удаления участника из роли.
Мирослав С.

Автор статей, ИБ-специалист