---
title: 'Управление пользователями MySQL semi-sync'
sidebar_label: 'Управление пользователями'
sidebar_position: 6
description: 'Как создать пользователя, изменить его пароль, настроить доступ к базе данных MySQL semi-sync и работать с привилегиями'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import MoreVerticalIcon from '@selectel/docux/icons/more-vertical'

# Управление пользователями MySQL semi-sync

Для доступа к базам данных в кластере MySQL semi-sync создаются пользователи.

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

К одной базе данных MySQL semi-sync можно выдать доступ нескольким пользователям.

## Создать пользователя \{#create-user}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера баз данных → вкладка **Пользователи**.
4. Нажмите **Создать пользователя**.
5. Введите имя и пароль. Сохраните пароль — в панели управления он храниться не будет.
6. Нажмите **Сохранить**.

## Изменить пароль пользователя \{#change-user-password}

После создания кластера пароль пользователя можно изменить. Не забудьте изменить пароль в своем приложении.

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера → вкладка **Пользователи**.
4. В меню <MoreVerticalIcon /> пользователя выберите **Изменить пароль**.
5. Введите или сгенерируйте новый пароль и сохраните изменения.

## Настроить доступ к базе данных \{#configure-access-to-database}

### Выдать доступ пользователю \{#grant-user-access}

К одной базе данных MySQL semi-sync можно выдать доступ нескольким пользователям.

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера баз данных → вкладка **Базы данных** → страница базы данных.
4. В блоке **Имеют доступ** нажмите **Добавить** и выберите пользователя.

Пользователь может только подключиться к базе данных (`CONNECT`) и не может выполнять операции с объектами. Чтобы дать пользователю доступ к объектам, [выдайте ему нужные привилегии](/managed-databases/mysql-semi-sync/manage-users.mdx#grant-privileges).

### Удалить доступ для пользователя \{#revoke-access-for-user}

1. В [панели управления](https://my.selectel.ru/vpc/default/dbaas/) в верхнем меню нажмите **Продукты** и выберите **Облачные базы данных**.
2. Откройте вкладку **Активные**.
3. Откройте страницу кластера баз данных → вкладка **Базы данных** → страница базы данных.
4. В блоке **Имеют доступ** удалите пользователя.

## Настроить привилегии пользователя \{#configure-user-privileges}

### Выдать привилегии \{#grant-privileges}

Выдать пользователям привилегии на базы данных и таблицы можно с помощью команды [GRANT](https://dev.mysql.com/doc/refman/8.0/en/grant.html). Привилегии могут быть следующими: `SELECT`, `INSERT`, `DELETE`, `USAGE` и другими.

Пример выдачи доступа на чтение (`SELECT`) к таблице `table` в базе данных `database` пользователю `user`:

```bash
GRANT SELECT ON table TO user;
```

Пример выдачи доступа на чтение (`SELECT`) к базе данных `database` пользователю `user`:

```bash
GRANT SELECT ON database.* TO user;
```

### Создать пользователя с правами только на чтение \{#create-read-only-user}

1. [Создайте пользователя](#create-user).
2. [Выдайте пользователю доступ](/managed-databases/mysql-semi-sync/manage-users.mdx#grant-user-access) к базе данных.
3. Создайте еще одного пользователя, который будет иметь права только на чтение (read-only).
4. [Подключитесь к базе данных](/managed-databases/mysql-semi-sync/connect-to-cluster.mdx) с помощью первого пользователя.
5. Выдайте read-only права к базе данных второму пользователю:

   ```bash
   REVOKE ALL PRIVILEGES ON <database_name>.* FROM '<username>'@'%';
   GRANT SELECT ON <database_name>.* TO '<username>'@'%';
   ```

   Укажите:

   * `<database_name>` — имя базы данных;
   * `<username>` — имя пользователя, которому будут выданы read-only права.

### Отозвать привилегии \{#revoke-privileges}

Отозвать у пользователя привилегии можно с помощью команды [REVOKE](https://dev.mysql.com/doc/refman/8.0/en/revoke.html).

Пример отзыва привилегии у пользователя `user` на таблицу `table` и базу данных `database`:

```bash
REVOKE SELECT ON table FROM user;
REVOKE SELECT ON database.* FROM user;
```

<Formbricks />
