База знаний VMmanager
Поддержка

Как сменить email для пользователя

В текущей версии платформы VMmanager 6 изменить email (логин) пользователя через интерфейс невозможно.

Возможные способы изменить email пользователя:

  • зарегистрировать пользователя с новым адресом и указать его владельцем у необходимых ВМ;
  • исправить адрес в базе данных в таблицах vm_account, auth_user и msgs_user2delivery_method.
Важно

Второй способ потребует вмешательства в базу данных, это предполагает потенциальный риск. Мы не рекомендуем вносить ручные правки в базу, поскольку это может нарушить корректную работу платформы.

Инструкции по внесению изменений в БД следует выполнять только после резервного копирования платформы. 

Смена электронной почты пользователя через базу данныхLink to Смена электронной почты пользователя через базу данных

  1. Выполните резервное копирование платформы. Подробнее см. в статье Резервное копирование документации VMmanager 6.
    1. Подключитесь к серверу с VMmanager по SSH и введите команду: 

      vm backup
    2.  Введите пароль для архива резервной копии или нажмите Enter, чтобы создать архив без пароля. Копия будет сохранена в директории /opt/ispsystem/vm/backup/.
  2. Подключитесь к СУБД: 

    В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:

    • VMmanager Hosting — MySQL;
    • VMmanager Infrastructure:
      • для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
      • в остальных случаях — MySQL.

    Чтобы определить тип СУБД, выполните на сервере с платформой команду: 

    docker ps --filter name=pgsql
    Пример ответа
    CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS      PORTS      NAMES
    3213c5dc94d0   postgres:12   "docker-entrypoint.s…"   5 days ago   Up 4 days   5432/tcp   pgsql

    Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.

    MySQL
    docker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
    PostgreSQL
    docker exec -it pgsql bash -c "psql -d isp"
  3. Выполните запрос к базе данных из таблицы auth_user для определения текущего email и ID пользователя: 

    select id,email from auth_user where email='example@example.com';

    Пример вывода: 

    *************************** 1. row ***************************
       id: 100
    email: example@example.com
    1 row in set (0.00 sec)
    Пояснения
  4. Если вывод выше содержит нужный email, измените адрес в таблице auth_user

    update auth_user set email='new_example@example.ru' where id=100;
    Пояснения
  5. Выполните аналогичные действия для таблицы vm_account. Запрос: 

    select id,email from vm_account where email='example@example.com'; 

    Пример вывода: 

    *************************** 1. row ***************************
       id: 100
    email: example@example.com
    1 row in set (0.00 sec)
    Пояснения
  6.  Если вывод выше содержит нужный email, измените адрес в таблице vm_account

    update vm_account set email='new_example@example.ru' where id=100;
    Пояснения
  7. Выполните запрос к базе данных из таблицы msgs_user2delivery_method, чтобы определить ID и email пользователя: 

    select user, u2dm_params from msgs_user2delivery_method where u2dm_params regexp 'example@example.com';

    Пример вывода: 

    *************************** 1. row ***************************
           user: 100
    u2dm_params: {"email": "example@example.com"}
    1 row in set (0.00 sec)
    Пояснения
  8. Если вывод выше содержит нужный email, измените адрес в таблице msgs_user2delivery_method

    update msgs_user2delivery_method set u2dm_params='{'email': 'new_example@example.com'}' where user=100;
    Пояснения
  9. Введите команду \q для выхода из консоли СУБД.
  10. Перезапустите VMmanager

    vm restart
  11. Повторите запросы из пп 3, 5, 7, чтобы убедиться, что email изменён.      
Дата последнего обновления статьи: 17.07.2024. Статья подготовлена техническими писателями ISPsystem .