我發現很多Web服務都提供對某些關係數據的CRUD訪問。例如我有概念,如users
,profiles
和hosts
,每個都有屬性,它們之間的關係(users
有profiles
,hosts
屬於users
等)。接受SQL作爲輸入的Web服務
我在想,指定你想要什麼的最好方法就是在SQL中表達它。
select name, profile.name, profile.id from users, profiles order by users.date;
什麼是一種好的/可行的/安全的方法來使Web服務接受輸入爲SQL查詢?
是否有某種可重用的SQL解析器/引擎,我可以重複使用?
編輯:我不是說允許人們直接訪問數據庫。我的意思是允許他們表達他們的需求(「我希望所有用戶的名字,以及他們相應的個人資料的名稱,其創建日期,以及關聯主機的數量,全部按上次修改日期排序」) SQL。這並不意味着Web服務必須將SQL查詢逐字轉發到數據庫。
感謝
在Web服務中寫入sql並傳遞參數。如果有人有臨時選擇查詢,請使用其他應用程序。 –
發送一個完整的SQL查詢作爲輸入到Web服務看起來像是一個安全噩夢,等待發生.......想象一下攻擊者可以做什麼! **不要這樣做!**它聽起來*起初真的很聰明,很誘人 - 但是有一個單獨的服務層,它有自己的限制和檢查是一件好事** - 不要把它打破允許調用者向您發送任意SQL語句! –