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

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

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

Переименование для такой задачи - это из пушки по воробьям. А представление - скорее всего изрядно просадит производительность, особенно если таблица пухлая.
...
Рейтинг: 0 / 0
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
    #39926961
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
    #39928146
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Akina
Штатным способом выполнить указанное действие является выполнение соотв. REVOKE
А если право на таблицу давалось не непосредственно, а в составе более объемлющего гранта, например, на базу или вообще *.*, то REVOKE на отдельную таблицу сработает?
[/quot]
Не работает, по крайней мере на 5.6 решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу перед UPDATE/DELETE/INSERT вроде работает теперь проблема понять откуда идет запрос на вставление новой записи но это уже другая история. СПАСИБО !!!
...
Рейтинг: 0 / 0
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
    #39928164
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews
решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу
А просто SIGNAL не проще было?
...
Рейтинг: 0 / 0
Возможно ли ограничить INSERT,UPDATE и DELETE к одной таблице для все пользователей?
    #39928220
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
alexnews
решили проблему триггерами которые пытаются вставлять 1 в не существующую таблицу
А просто SIGNAL не проще было?

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


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