@kickbokser

Как сделать read only конкретной таблице mysql?

Всем привет! Подскажите пожалуйста как можно сделать только чтение конкретной таблице? Я вручную редактирую под себя данные, но после срабатывания моего скрипта данные возвращаются на дефолтные.

Вот я на скрине выделил строку, которую я хотел бы сделать read only а все остальные чтобы по стандарту работали. Скажите пожалуйста, это вообще реально?

4a31f6138b1b49f8b5d9df657baf005e.png
  • Вопрос задан
  • 2086 просмотров
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега MySQL
Web developer
Удалить все grant и создать новые (на эту таблицу GRANT SELECT, на остальные таблицы GRANT ALL).
GRANT SELECT ON mydb.mytbl1 TO 'someuser'@'somehost';
GRANT ALL ON mydb.mytbl2 TO 'someuser'@'somehost';
GRANT ALL ON mydb.mytbl3 TO 'someuser'@'somehost';
GRANT ALL ON mydb.mytbl4 TO 'someuser'@'somehost';

Подробнее см. https://dev.mysql.com/doc/refman/5.7/en/grant.html...
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Определитесь, вам нужна read-only таблица или строка в таблице?
Для таблицы решение дал Boris Korobkov
Для строки тоже можно извратиться:
- добавляете в таблицу колонку `readonly` BOOL DEFAULT 0;
- создаёте триггер BEFORE UPDATE, который проверяет значение колонки `readonly` и, если там стоит 1, то заменяет все NEW.поля, кроме NEW.`readonly` на соответствующие OLD.поля;
- создаёте триггер BEFORE DELETE, который проверяет значение колонки `readonly` и, если там стоит 1, то выбрасывает ошибку;
- меняете значения `readonly` на 1 в строках, которые надо закрыть от изменения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы