Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Managed Service for MySQL
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение кластера
    • Подключение к DataLens
    • Управление хостами MySQL
    • Управление базами данных
    • Настройка базы данных
    • Управление пользователями
    • Назначение привилегий и ролей
    • Управление резервными копиями
    • Удаление кластера
    • Миграция базы данных в Yandex.Cloud
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MySQL
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST
      • Обзор
      • Backup
        • Обзор
        • get
        • list
      • Cluster
        • Обзор
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • restore
        • start
        • stop
        • update
      • Database
        • Обзор
        • create
        • delete
        • get
        • list
      • ResourcePreset
        • Обзор
        • get
        • list
      • User
        • Обзор
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Обзор
        • get
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MySQL
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Назначение привилегий и ролей

Назначение привилегий и ролей пользователям

  • Изменить список ролей пользователя
  • Выдать привилегию пользователю
  • Отозвать привилегию у пользователя
  • Описание ролей

В Managed Service for MySQL привилегии — это атомарные полномочия пользователя в отношении отдельных объектов базы данных. Роли — это привилегии, предоставляемые пользователю в отношении всех пользовательских объектов какой-либо базы данных. Пользователи могут иметь разные наборы ролей для разных баз данных. Чтобы узнать подробнее про поддерживаемые роли, см. описание ролей.

Пользователь, создаваемый вместе с кластером Managed Service for MySQL, автоматически получает роль владельца (ALL_PRIVILEGES) первой базы данных в кластере. После этого вы можете создавать других пользователей и настраивать их права по своему усмотрению:

  • Изменить список ролей пользователя.
  • Выдать привилегию пользователю.
  • Отозвать привилегию у пользователя.

Изменить список ролей пользователя

Консоль управления
CLI
API

Чтобы изменить список ролей пользователя:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера и выберите вкладку Пользователи.
  3. Нажмите значок и выберите пункт Настроить.
  4. При необходимости добавьте пользователю нужные базы данных:
    1. Нажмите кнопку Добавить базу данных.
    2. Выберите базу данных из выпадающего списка.
    3. Повторите два предыдущих шага, пока не будут выбраны все требуемые базы данных.
    4. Чтобы отозвать доступ к определенной базе, удалите ее из перечня, нажав значок справа от имени базы данных.
  5. Задайте нужные роли пользователя для каждой из баз данных пользователя:
    1. Нажмите значок в столбце Роли.
    2. Выберите роль, которую вы хотите добавить пользователю из выпадающего списка.
    3. Повторите два предыдущих шага, пока не будут добавлены все требуемые роли.
  6. Чтобы отозвать роль, нажмите значок справа от ее имени.
  7. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

$ yc managed-mysql user grant-permission <имя пользователя>
     --cluster-name <имя кластера>
     --database <имя базы данных>
     --permissions <набор ролей через запятую>

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

Чтобы выдать пользователю роль ALL_PRIVILEGES, передайте в качестве названия роли синоним ALL.

Воспользуйтесь методом API update и передайте в запросе:

  • Идентификатор кластера, в котором находится пользователь в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Имя пользователя в параметре userName. Чтобы узнать имя, получите список пользователей в кластере.
  • Имя базы данных, для которой вы хотите изменить список ролей пользователя в параметре permissions.databaseName. Чтобы узнать имя, получите список баз данных в кластере.
  • Массив нового списка ролей пользователя в параметре permissions.roles.
  • Список полей конфигурации пользователя подлежащих изменению (в данном случае — permissions) в параметре updateMask.

Важно

Этот метод API сбросит все настройки пользователя, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, обязательно передайте название поля подлежащего изменению (в данном случае — permissions) в параметре updateMask.

Выдать привилегию пользователю

  1. Подключитесь к базе данных с помощью учетной записи владельца базы данных.
  2. Выполните команду GRANT. Подробное описание синтаксиса команды смотрите в документации MySQL.

Примеры:

  1. Выдать пользователю user2 права на чтение таблицы Products:

    GRANT SELECT ON Products TO user2;
    
  2. Выдать пользователю user2 права на чтение всех таблиц базы db1:

    GRANT SELECT ON db1.* TO user2;
    

Отозвать привилегию у пользователя

  1. Подключитесь к базе данных с помощью учетной записи владельца базы данных.
  2. Выполните команду REVOKE. Подробное описание синтаксиса команды смотрите в документации MySQL.

Примеры:

  1. Отозвать у пользователя user2 права на чтение таблицы Products:

    REVOKE SELECT ON Products FROM user2;
    
  2. Отозвать у пользователя user2 права на чтение всех таблиц базы db1:

    REVOKE SELECT ON db1.* FROM user2;
    

Описание ролей

  • ALL_PRIVILEGES — позволяет совершать любые действия с пользовательскими данными в базе.
  • ALL — синоним для роли ALL_PRIVILEGES, используемый при управлении ролями через CLI.
  • ALTER — позволяет использовать оператор ALTER TABLE для изменения структуры любых пользовательских таблиц в базе данных. Требует наличия полномочий CREATE и INSERT. А для переименования таблиц — DROP, CREATE и INSERT.
  • ALTER_ROUTINE — позволяет использовать оператор ALTER ROUTINE для изменения или удаления любых пользовательских хранимых процедур и функций в базе данных.
  • CREATE — позволяет использовать оператор CREATE для создания пользовательских таблиц в базе данных.
  • CREATE_ROUTINE — позволяет использовать оператор CREATE ROUTINE для создания пользовательских хранимых процедур и функций в базе данных.
  • CREATE_TEMPORARY_TABLES — позволяет использовать оператор CREATE TEMPORARY TABLE для создания пользовательских временных таблиц в базе данных.
  • CREATE_VIEW — позволяет использовать оператор CREATE VIEW для создания пользовательских представлений в базе данных.
  • DELETE — позволяет удалять записи из любых пользовательских таблиц в базе данных.
  • DROP — позволяет удалять таблицы и представления.
  • EVENT — позволяет создавать, изменять, удалять или отображать события в Планировщике Событий (Event Scheduler).
  • EXECUTE — позволяет исполнять любые пользовательские хранимые процедуры и функции.
  • INDEX — позволяет создавать и удалять индексы у существующих в базе данных таблиц.
  • INSERT — позволяет вставлять записи в пользовательские таблицы в базе данных.
  • LOCK_TABLES — позволяет явно использовать оператор LOCK_TABLES для создания блокировок на таблицы в базе данных.
  • SELECT — позволяет читать данные из таблиц в базе данных.
  • SHOW_VIEW — позволяет использовать оператор SHOW CREATE VIEW.
  • TRIGGER — позволяет создавать, удалять, исполнять или отображать триггеры у существующих в базе данных таблиц.
  • UPDATE — позволяет обновлять записи в таблицах в базе данных.
В этой статье:
  • Изменить список ролей пользователя
  • Выдать привилегию пользователю
  • Отозвать привилегию у пользователя
  • Описание ролей
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»