我的客户想要在我们的网络应用程序的后端数据库上运行任意 SQL SELECT
查询,以进行临时报告。这些请求将是只读的。假设分析工具的选择是灵活的,但可能包括 Access 或 psql。我不想在公共(public) Internet 上公开数据库,而是希望通过 HTTP 传输 SQL 查询。
我能否实现允许数据库分析工具使用用户的网络应用凭据与数据库通信的网络服务?例如。而不是以 postgres://
开头的数据库连接字符串,它将以 https://
开头。理想情况下,我正在寻找执行此操作的 [事实上的] 标准方法。
相关但不同/未回答:
最佳答案
我不知道这方面的标准。 MK 说的有道理,这听起来像是 SLQ 注入(inject)攻击的巨大机会。服务始终公开数据库查询的结果。他们通常会请求一些参数并公开明确定义的响应。让服务的公共(public)用户全权运行他们想要的任何查询,意味着您必须确保他们不会潜入删除数据库或以某种方式从表查询中删除。防守起来可能很棘手。综上所述,我已经看到这种模式用于私有(private)服务来汇集数据库服务器知道的连接。数据库连接往往非常昂贵。
关于sql - 通过 HTTP 运行 SQL 查询的标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981782/