Как запретить удаление каких-либо строк в конкретной таблице MySQL? - PullRequest
1 голос
/ 26 августа 2009

Есть ли способ настроить таблицу mysql, чтобы можно было писать и читать, но не удалять?

Например, таблица, которая содержит много журналов, которые юридически важны и которые никогда не должны быть удалены.

Ответы [ 4 ]

3 голосов
/ 26 августа 2009

Вы бы просто предоставили привилегии INSERT и SELECT для рассматриваемой таблицы (это исключает возможность изменения строки)

GRANT INSERT,SELECT ON mydb.mytable 
TO secureduser@localhost 
IDENTIFIED BY 'password';

С этого момента вы добавите более широкие разрешения для других таблиц в базе данных для этого пользователя.

Кроме того, ознакомьтесь с механизмом архивного хранения , который специально разработан для этого вида журнала аудита.

2 голосов
/ 26 августа 2009

Отмена удаления привилегии от всех пользователей для этой таблицы.

1 голос
/ 26 августа 2009

Другой вариант - использовать механизм хранения архива. Это позволяет только вставку, никаких обновлений или удалений (от кого-либо - даже привилегированной учетной записи)

0 голосов
/ 26 августа 2009

Вы можете сделать, как он говорит ниже, или ... Что вы можете сделать, это дать пользователям «роли» в числовой форме, а затем передать это число в сценарий, который удалит строку ... но если переданное число ниже определенного «минимального ожидаемого значения роли», тогда им будет отказано в доступе к сценарий?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...