fma*_*ark 5 sql security postgresql postgis sandbox
我想创建一个SQL沙箱,该沙箱将允许用户SELECT在PostGIS数据库中执行任意查询。本质上,我想允许用户访问以psql进行玩耍。
显然,如果允许写访问,这将是安全灾难。如何创建允许查询数据的系统,但是用户没有合理的可能性:
SELECT * from long_table, long_table, long_table, long_table, long_table, long_table, long_table将花费一生的时间来执行请在回答中尽可能具体。
正如其他人指出的那样,问题 #1 和问题 #2 是通过显式授予和撤销权限来处理的。
至于#3,
ALTER ROLE <rolename> SET statement_timeout = '60000'
Run Code Online (Sandbox Code Playgroud)
对我来说一直很有效。这将终止任何执行时间超过 1 分钟(60000 毫秒)的查询。我们在 phpPgAdmin 中的几个用户编写的查询导致问题后发现了这一点......