首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用户生成的SQL查询

用户生成的SQL查询
EN

Stack Overflow用户
提问于 2013-07-23 21:35:17
回答 2查看 702关注 0票数 3

我正在使用Rails开发一个数据仓库,我应该允许用户在应用程序数据库上执行任意的选择查询。

我知道这是您通常不应该做的事情,但这是我的客户实际需要的接口(我想不出用户可能想做的所有可能的查询,并将它们转换为ActiveRecord查询)。可能有复杂的联接和子查询等。我宁愿这样做(将它集成到我的应用程序中),也不愿让他们通过pgAdmin访问DB (我正在使用postgresql)。

我的问题是:这样做最安全的方法是什么?我应该能摆脱任何像插入,更新,删除表等.

我正在考虑获取查询字符串并清除这些“危险”单词,然后使用ActiveRecord::Base.connection.execute(sanitized_sql_string).这是否一个合理的方法?

EN

Stack Overflow用户

发布于 2013-07-23 21:44:49

创建应用程序,然后创建数据库。

在此之后,在数据库配置(database.yml)中,使用一些非默认用户(比如lame_user )连接到数据库。在关系数据库管理系统上创建这个lame_user (在您的例子中是PostgreSQL ),并且只授予他对所有表的选择权限。

现在您将拥有用户postgres和可以访问数据库的lame_user,但是只有postgres才能完成所有的工作。

如果用户尝试执行SELECT以外的任何操作,则会发生错误。

恢复:将此应用程序约束设置为数据库。会更容易的。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17821493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档