Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей? / 8 сообщений из 8, страница 1 из 1
14.02.2020, 17:38
    #39926839
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
Уважаемые Спецы!
Возникла необходимость временно ограничить INSERT,UPDATE, DELETE только к одной таблице в базе данных для всех сразу пользователей.
Рассматривались варианты:
1. LOCK TABLE - но не работает так как не реально отследить все запросы
2. TRIGGER on UPDATE,DELETE,INSERT - в данный момент рабочий вариант рассматривается
но хотелось бы узнать есть ли другие возможности?

Заранее спасибо
...
Рейтинг: 0 / 0
14.02.2020, 19:35
    #39926898
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
Еще можно таблицу переименовать. Если при этом она нужна для чтения , то сделать замещающее вью.
...
Рейтинг: 0 / 0
14.02.2020, 20:07
    #39926908
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
miksoft,

спасибо, хороший третий вариант! я как то совсем забыл про вьюз.
...
Рейтинг: 0 / 0
14.02.2020, 21:45
    #39926927
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
alexnews
Возникла необходимость временно ограничить INSERT,UPDATE, DELETE только к одной таблице в базе данных для всех сразу пользователей.
Штатным способом выполнить указанное действие является выполнение соотв. REVOKE, а когда надобность отпадёт - комплементарного GRANT.

Переименование для такой задачи - это из пушки по воробьям. А представление - скорее всего изрядно просадит производительность, особенно если таблица пухлая.
...
Рейтинг: 0 / 0
15.02.2020, 02:26
    #39926961
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
Akina
Штатным способом выполнить указанное действие является выполнение соотв. REVOKE
А если право на таблицу давалось не непосредственно, а в составе более объемлющего гранта, например, на базу или вообще *.*, то REVOKE на отдельную таблицу сработает?
Насколько я вижу по доке, это относительно недавно стало работать:
https://dev.mysql.com/doc/refman/8.0/en/grant.html As of MySQL 8.0.16, it is possible to explicitly deny a privilege granted at the global level by revoking it for particular databases, if the partial_revokes system variable is enabled:

GRANT SELECT, INSERT, UPDATE ON *.* TO u1;
REVOKE INSERT, UPDATE ON db1.* FROM u1;
The result of the preceding statements is that SELECT applies globally to all tables, whereas INSERT and UPDATE apply globally except to tables in db1. Account access to db1 is read only.+ см. https://dev.mysql.com/doc/refman/8.0/en/partial-revokes.html


Akina
А представление - скорее всего изрядно просадит производительность, особенно если таблица пухлая.
Только если оно материализуется. Но представление вида SELECT * FROM mytable не должно материализоваться.
...
Рейтинг: 0 / 0
18.02.2020, 18:52
    #39928146
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
miksoft
Akina
Штатным способом выполнить указанное действие является выполнение соотв. REVOKE
А если право на таблицу давалось не непосредственно, а в составе более объемлющего гранта, например, на базу или вообще *.*, то REVOKE на отдельную таблицу сработает?
[/quot]
Не работает, по крайней мере на 5.6 решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу перед UPDATE/DELETE/INSERT вроде работает теперь проблема понять откуда идет запрос на вставление новой записи но это уже другая история. СПАСИБО !!!
...
Рейтинг: 0 / 0
18.02.2020, 19:30
    #39928164
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
alexnews
решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу
А просто SIGNAL не проще было?
...
Рейтинг: 0 / 0
18.02.2020, 22:48
    #39928220
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
Akina
alexnews
решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу
А просто SIGNAL не проще было?

Спасибо, как то забыл про SIGNAL
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]