Машина только для чтения AWS RDS - как добавить нового пользователя

У меня работает два сервера 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 ответ

Решение

Изменить: не будет работать на 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 пользователь все еще там на ведомом устройстве, но не на главном сервере.

Другие вопросы по тегам