Роли базы данных в CQL (язык запросов Cassandra)

Опубликовано: 17 Августа, 2021

В этой статье мы обсудим роли базы данных на языке запросов Cassandra. Очень важно создать разные роли для разных типов пользователей, чтобы обеспечить доступ с определенными требованиями. Он используется для обеспечения безопасности пользователей базы данных или группы пользователей.

Имя роли можно просто определить следующим образом.

 имя_роли :: = идентификатор | нить

  1. СОЗДАТЬ РОЛЬ:
    В CQL мы можем создать роль, используя оператор CREATE command. Команда CREATE помогает в создании роли для пользователей или группы пользователей.
    Синтаксис:

 create_role_statement :: = СОЗДАТЬ РОЛЬ [ЕСЛИ НЕ СУЩЕСТВУЕТ] имя_роли
                               [WITH role_options]
параметры_роли :: = параметр_роли (И параметр_роли) *
role_option :: = PASSWORD '=' строка
                          | LOGIN '=' логический
                          | SUPERUSER '=' логическое
                          | ОПЦИИ '=' map_literal
                          | ДОСТУП К ЦЕНТРАМ ДАННЫХ set_literal
                          | ДОСТУП К ВСЕМ ДАТАЦЕНТРАМ
  1. источник

 синтаксис:
СОЗДАТЬ РОЛЬ new_role_name;
  1. Например:
    Чтобы создать простую роль пользователя и суперпользователя, затем используйте следующий запрос CQL.

 СОЗДАТЬ РОЛЬ Ashish С ПАРОЛЕМ = 'pass_a' 
                         И ВХОД = true;
СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' 
                  И ВХОД = true 
                  И СУПЕРПОЛЬЗОВАТЕЛЬ = истина;
  1. Чтобы создать роли базы данных для пользователя с дополнительными ограничениями, например, если пользователь может получить доступ только к определенным центрам обработки данных, для создания такого типа роли используется следующий запрос CQL.

 СОЗДАТЬ РОЛЬ user1 С OPTIONS = {'option1': 'option1_value', 
                                   'option2': 98};
СОЗДАТЬ РОЛЬ Ashish С ПАРОЛЕМ = 'pass_a' 
                    И ВХОД = true 
                    И ДОСТУП К ЦЕНТРАМ ДАННЫХ {'DC1', 'DC4'};
СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' 
                  И ВХОД = true 
                  И ДОСТУП ВО ВСЕХ ЦЕНТРАХ ДАННЫХ;
  1. Если мы хотим создать роль условно, мы можем использовать следующий запрос CQL.

 СОЗДАТЬ РОЛЬ, ЕСЛИ НЕ СУЩЕСТВУЕТ имя_роли;
  1. ИЗМЕНИТЬ РОЛЬ:
    Если мы хотим изменить существующую роль, которая уже была создана после этого, мы можем изменить роль с помощью оператора ALTER ROLE.

 Синтаксис: 
alter_role_statement :: = ALTER ROLE имя_роли 
                          С role_options
  1. Например:
    Перед изменением роли

 СОЗДАТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' 
                       И ВХОД = true 
                       И СУПЕРПОЛЬЗОВАТЕЛЬ = истина;
  1. После смены роли
 ИЗМЕНИТЬ РОЛЬ Rana С ПАРОЛЕМ = 'pass_r' 
                      И СУПЕРПОЛЬЗОВАТЕЛЬ = ложь;
  1. КАПИТЕЛЬНАЯ РОЛЬ:
    Если пользователь хочет удалить существующую роль, мы можем использовать следующий запрос CQL, чтобы удалить роль.
    синтаксис:

 drop_role_statement :: = DROP ROLE [IF EXISTS] имя_роли
  1. Например:

 КАПИТЕЛЬНАЯ РОЛЬ Ашиш;
  1. РОЛЬ ГРАНТА:
    Он используется для предоставления РОЛИ для других целей.
    синтаксис:
 grant_role_statement :: = GRANT имя_роли 
                                  TO имя_роли
  1. Например:

 ПРЕДОСТАВИТЬ user1 Ашишу;
  1. Этот оператор предоставляет Ашишу роль user1. Любые разрешения, предоставленные пользователю user1, также получает Ashish.
  2. ОТМЕНИТЬ РОЛЬ:
    Если пользователь хочет отозвать роль базы данных, мы можем использовать оператор REVOKE ROLE.
    синтаксис:
 revoke_role_statement :: = REVOKE имя_роли 
                                 ОТ имя_роли
  1. Например:
 ОТЗЫВ user1 ОТ Ашиша;
  1. Вышеупомянутый оператор запроса CQL отменяет роль user1 у Ashish. Любые разрешения, которые Ашиш получил через роль user1, также аннулируются.

  2. СПИСОК РОЛЬ:
    Если пользователь хочет перечислить все роли, мы можем использовать следующий запрос CQL для перечисления всех ролей.
    синтаксис:
 list_roles_statement :: = СПИСОК РОЛЕЙ [OF role_name] 
                                          [НЕРЕКУРСИВНЫЙ]
  1. Например:
 СПИСОК РОЛИ;
  1. Этот оператор запроса CQL возвращает все известные роли в системе, для которых требуется разрешение DESCRIBE для ресурса ролей базы данных.