Управление пользователями MySQL с экземпляром только для чтения - PullRequest
5 голосов
/ 20 сентября 2011

У меня есть мастер-экземпляр MySQL и ведомый экземпляр только для чтения.Я хочу отдельно поддерживать пользователей и привилегии для обоих экземпляров.Схема mysql на ведущем устройстве не реплицируется на ведомое устройство.

Проблема заключается в том, что пользователи на ведомом экземпляре не могут изменять свои пароли из-за состояния только для чтения.Неуместно предоставлять этим пользователям привилегии SUPER, даже временно, просто для изменения их пароля.Есть ли способ сделать MySQL доступным только для чтения, но на основе схемы за схемой, а не всего экземпляра?Я только хочу, чтобы данные из моего проблемного пространства были доступны только для чтения.Не мое пространство решения (пользователи БД, разрешения БД и т. Д.).

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

Другая возможность будет состоять в том, чтобы реплицировать только специальные базы данных (а не базу данных mysql), с возможностью определения других пользователей и прав на подчиненном устройстве. Таким образом, вместо readlony = 1 вы можете запретить всем пользователям права на изменение набора данных.

0 голосов
/ 22 сентября 2011

read_only работает только в том случае, если у пользователя нет привилегий SUPER.

Вы можете попробовать это:

  1. Создать хранимую процедуру для смены паролей
  2. Используйте SQL SEFURITY DEFINER в своей процедуре.
  3. Установить определитель для пользователя с привилегиями SUPER
  4. Непривилегированный пользователь может вызвать процедуру для смены пароля.

Вы должны убедиться, что процедура проверяет, разрешено ли кому-либо изменять данный пароль.

...