Встречается на собеседованиях • сегодня
Как защитить таблицу в базе данных от изменений, даже если есть права на изменение
Для защиты таблицы от изменений можно использовать несколько подходов:
- Триггеры - создать BEFORE триггер, который будет отменять операции UPDATE/DELETE:
sql
CREATE TRIGGER prevent_changes
BEFORE UPDATE OR DELETE ON protected_table
FOR EACH ROW
BEGIN
RAISE EXCEPTION 'This table is read-only';
END;- REVOKE прав - отозвать права на модификацию, оставив только SELECT:
sql
REVOKE INSERT, UPDATE, DELETE ON protected_table FROM user_role;- Представления (VIEW) - предоставить доступ только через представление без возможности модификации:
sql
CREATE VIEW v_protected AS SELECT * FROM protected_table WITH READ ONLY;- Аудит - настроить логирование всех изменений для последующего анализа.
Для максимальной защиты лучше комбинировать эти методы. Триггеры работают даже для пользователей с правами администратора, но могут быть отключены.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы