Я работаю с MS-SQL Server, и у нас есть несколько представлений, которые потенциально могут возвращать огромные объемы обработанных данных, достаточных для того, чтобы наши серверы использовали 100% ресурсов в течение 30 минут подряд с помощью одного запроса (при безответственном запросе) .
Не существует абсолютно никакого бизнес-кейса, в котором такие огромные объемы данных должны были бы быть возвращены из этих представлений, поэтому мы хотели бы заблокировать их, чтобы гарантировать, что никто не сможет DoS-атаки на наши SQL-серверы (преднамеренно или иным образом), просто запрашивая эти конкретные данные. представления без правильных предложений where
и т. д.
Можно ли с помощью триггеров или другого метода проверить предложение where
и т. д. и подтвердить, является ли данный запрос «безопасным» для выполнения (на основе установленных нами пороговых значений), и отклонить запрос, если он не соответствует нашим рекомендациям?
Или мы можем настроить сервер так, чтобы он отклонял заданные планы выполнения на основе предполагаемого времени выполнения и т. д.?