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

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