Есть ли способ настроить таблицу mysql, чтобы можно было писать и читать, но не удалять?
Например, таблица, которая содержит много журналов, которые юридически важны и которые никогда не должны быть удалены.
Вы бы просто предоставили привилегии INSERT и SELECT для рассматриваемой таблицы (это исключает возможность изменения строки)
GRANT INSERT,SELECT ON mydb.mytable TO secureduser@localhost IDENTIFIED BY 'password';
С этого момента вы добавите более широкие разрешения для других таблиц в базе данных для этого пользователя.
Кроме того, ознакомьтесь с механизмом архивного хранения , который специально разработан для этого вида журнала аудита.
Отмена удаления привилегии от всех пользователей для этой таблицы.
Другой вариант - использовать механизм хранения архива. Это позволяет только вставку, никаких обновлений или удалений (от кого-либо - даже привилегированной учетной записи)
Вы можете сделать, как он говорит ниже, или ... Что вы можете сделать, это дать пользователям «роли» в числовой форме, а затем передать это число в сценарий, который удалит строку ... но если переданное число ниже определенного «минимального ожидаемого значения роли», тогда им будет отказано в доступе к сценарий?