Машина AWS RDS только для чтения - как добавить нового пользователя - PullRequest
0 голосов
/ 18 сентября 2018

У меня работает два сервера RDS mysql, один из которых является основным (главным) rds-сервером, а другой - ведомым только для чтения, который был создан с помощью консоли RDS.

Как мне создать новую учетную запись пользователя для машины только для чтения, которая не будет иметь доступа к основному главному компьютеру? Например, когда я запускаю следующую команду:

CREATE USER 'foo'@'localhost' IDENTIFIED BY 'password';

Я получаю:

The MySQL server is running with the --read-only option so it cannot execute this statement

Я бы хотел, чтобы у пользователя был доступ к следующему:

  • ДА (только для чтения): site-read.cyrnzp ...
  • НЕТ (мастер): site-provisioned.cyrnzp ...

Как бы это было сделано тогда?

1 Ответ

0 голосов
/ 18 сентября 2018

Изменить: не работает на AWS RDS, поскольку sql_log_bin имеет привилегию

Самый простой способ - создать его на мастере CREATE USER foo@localhost. Это также будет копироваться на подчиненное устройство, создавая там пользователя.

Затем, чтобы удалить доступ к мастеру, SET SESSION sql_log_bin=0; DROP USER foo@localhost. sql_log_bin=0 означает, что все операторы в одном сеансе не записываются в двоичный журнал. Все остальные действия сервера в разных сеансах по-прежнему реплицируются.

Результатом этого является то, что подчиненный сервер не видит оператор DROP USER, что означает, что пользователь foo все еще находится на ведомом устройстве, но не на главном сервере.

...