Роли базы данных в CQL (язык запросов Cassandra)
В этой статье мы обсудим роли базы данных на языке запросов Cassandra. Очень важно создать разные роли для разных типов пользователей, чтобы обеспечить доступ с определенными требованиями. Он используется для обеспечения безопасности пользователей базы данных или группы пользователей.
Имя роли можно просто определить следующим образом.
имя_роли :: = идентификатор | нить
- СОЗДАТЬ РОЛЬ:
В CQL мы можем создать роль, используя оператор CREATE command. Команда CREATE помогает в создании роли для пользователей или группы пользователей.
Синтаксис:
create_role_statement :: = СОЗДАТЬ РОЛЬ [ЕСЛИ НЕ СУЩЕСТВУЕТ] имя_роли [WITH role_options] параметры_роли :: = параметр_роли (И параметр_роли) * role_option :: = PASSWORD '=' строка | LOGIN '=' логический | SUPERUSER '=' логическое | ОПЦИИ '=' map_literal | ДОСТУП К ЦЕНТРАМ ДАННЫХ set_literal | ДОСТУП К ВСЕМ ДАТАЦЕНТРАМ
источник
синтаксис: СОЗДАТЬ РОЛЬ new_role_name;
Например:
Чтобы создать простую роль пользователя и суперпользователя, затем используйте следующий запрос CQL.
СОЗДАТЬ РОЛЬ Ashish С ПАРОЛЕМ = 'pass_a' И ВХОД = true; СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' И ВХОД = true И СУПЕРПОЛЬЗОВАТЕЛЬ = истина;
Чтобы создать роли базы данных для пользователя с дополнительными ограничениями, например, если пользователь может получить доступ только к определенным центрам обработки данных, для создания такого типа роли используется следующий запрос CQL.
СОЗДАТЬ РОЛЬ user1 С OPTIONS = {'option1': 'option1_value', 'option2': 98}; СОЗДАТЬ РОЛЬ Ashish С ПАРОЛЕМ = 'pass_a' И ВХОД = true И ДОСТУП К ЦЕНТРАМ ДАННЫХ {'DC1', 'DC4'}; СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' И ВХОД = true И ДОСТУП ВО ВСЕХ ЦЕНТРАХ ДАННЫХ;
Если мы хотим создать роль условно, мы можем использовать следующий запрос CQL.
СОЗДАТЬ РОЛЬ, ЕСЛИ НЕ СУЩЕСТВУЕТ имя_роли;
- ИЗМЕНИТЬ РОЛЬ:
Если мы хотим изменить существующую роль, которая уже была создана после этого, мы можем изменить роль с помощью оператора ALTER ROLE.
Синтаксис: alter_role_statement :: = ALTER ROLE имя_роли С role_options
Например:
Перед изменением роли
СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' И ВХОД = true И СУПЕРПОЛЬЗОВАТЕЛЬ = истина;
- После смены роли
ИЗМЕНИТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' И СУПЕРПОЛЬЗОВАТЕЛЬ = ложь;
- КАПИТЕЛЬНАЯ РОЛЬ:
Если пользователь хочет удалить существующую роль, мы можем использовать следующий запрос CQL, чтобы удалить роль.
синтаксис:
drop_role_statement :: = DROP ROLE [IF EXISTS] имя_роли
Например:
КАПИТЕЛЬНАЯ РОЛЬ Ашиш;
- РОЛЬ ГРАНТА:
Он используется для предоставления РОЛИ для других целей.
синтаксис:
grant_role_statement :: = GRANT имя_роли TO имя_роли
Например:
ПРЕДОСТАВИТЬ user1 Ашишу;
- Этот оператор предоставляет Ашишу роль user1. Любые разрешения, предоставленные пользователю user1, также получает Ashish.
- ОТМЕНИТЬ РОЛЬ:
Если пользователь хочет отозвать роль базы данных, мы можем использовать оператор REVOKE ROLE.
синтаксис:
revoke_role_statement :: = REVOKE имя_роли ОТ имя_роли
- Например:
ОТЗЫВ user1 ОТ Ашиша;
Вышеупомянутый оператор запроса CQL отменяет роль user1 у Ashish. Любые разрешения, которые Ашиш получил через роль user1, также аннулируются.
- СПИСОК РОЛЬ:
Если пользователь хочет перечислить все роли, мы можем использовать следующий запрос CQL для перечисления всех ролей.
синтаксис:
list_roles_statement :: = СПИСОК РОЛЕЙ [OF role_name] [НЕРЕКУРСИВНЫЙ]
- Например:
СПИСОК РОЛИ;
- Этот оператор запроса CQL возвращает все известные роли в системе, для которых требуется разрешение DESCRIBE для ресурса ролей базы данных.