Встречается на собеседованиях • сегодня

Как защитить таблицу в базе данных от изменений

В Java можно защитить таблицу от изменений несколькими способами:

  1. На уровне базы данных:
sql
REVOKE INSERT, UPDATE, DELETE ON table_name FROM user_name;
  1. Используя права доступа в приложении:
java
@PreAuthorize("hasRole('ADMIN')")
@PostMapping("/update")
public void updateData(...) {
    // Логика обновления
}
  1. Через ORM (например, Hibernate):
java
@Entity
@Table(name = "protected_table")
@SQLInsert(sql = "SELECT 1") // Блокировка вставки
@SQLUpdate(sql = "SELECT 1") // Блокировка обновления
@SQLDelete(sql = "SELECT 1") // Блокировка удаления
public class ProtectedEntity {
    // ...
}
  1. Триггеры в БД:
sql
CREATE TRIGGER prevent_changes
BEFORE INSERT OR UPDATE OR DELETE ON protected_table
FOR EACH ROW EXECUTE FUNCTION abort_operation();

Лучший подход - комбинация нескольких методов, например, ограничение прав на уровне БД + проверка прав в приложении. Для критически важных данных можно добавить триггеры как последний рубеж защиты.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы