Я бы хотел, чтобы наши пользователи могли обрабатывать данные с помощью нашего API. Мы хотим применить accountId
вместе со всеми фильтрами (предоставленными пользователем) в условии where. Я не наших пользователей манипулировать идентификатором учетной записи. Как безопасно применять фильтры вместе с идентификатором учетной записи?
Мы хотим избежать любых sql injection
и получать результаты для всех accountIds
.
Мы думаем о написании подзапроса. Мы действительно сомневаемся в выступлениях.
Обычный запрос:
select any(accountId), appName, avg(duration) from performance_table where
accountId = '500' and eventDateTime >= now() - 30 * 60 and env = "production"
group by appName order by appName limit 10
Использование подзапроса:
Подзапрос 1:
select any(accountId), appName, avg(duration) from (select * from
performance_table where
accountId = '500' and eventDateTime >= now() - 30 * 60) where env = "production"
group by appName order by appName limit 10
Подзапрос 2:
select * from (select any(accountId), appName, avg(duration) from performance_table
where accountId = '500' and eventDateTime >= now() - 30 * 60
where env = "production" group by appName order by appName limit 10) where accountId = '500'
Не могли бы вы предложить безопасный способ сделать это?