【发布时间】:2018-01-24 08:52:34
【问题描述】:
我让我的用户在我正在构建的应用程序中执行 sql 查询。他们可以输入数据库连接字符串(mysq、pg 和其他支持的 rdbms) 有没有办法只在这样的获取方法上允许 SELECT 语句
client = Sequel.connect "mysql2://user:pass@hostname/some_db"
client.fetch("SELECT * FROM sample_table").all
并禁止以下行为
client.fetch("DROP DATABASE some_db").all
client.fetch("TRUNCATE some_table").all
client.fetch("ALTER some_table").all
我还可以使用 sequel gem 获取每个表列的表和数据类型吗?
【问题讨论】:
-
解析查询并确定它是选择查询还是其他什么?是的,这是可能的。