middleware, который будет проверять права на каждом запросе будет правильным решением.
Но можно и сделать финт ушами (хотя решение и не красивое и не масштабируемое):
Delete from `table` where user_id = 'ваш пользователь' and book_id = 'Ваша книжка';
Естественно, что удалить может только владелец.
Ну, а дальше анализировать результат выполнения запроса: если ничего не удалено, выдавать ошибку.