确保SQL 查询不会更改数据库数据的最佳方法是什么?
在我的场景中,你没有访问数据库层的权限,只能在应用层做这个逻辑。
你会推荐使用 gem,一个 ruby 自定义脚本吗?
确保SQL 查询不会更改数据库数据的最佳方法是什么?
在我的场景中,你没有访问数据库层的权限,只能在应用层做这个逻辑。
你会推荐使用 gem,一个 ruby 自定义脚本吗?
您可以管理用户的权限,使他们有权读取数据库但无权更改数据库(即无法插入、更新和删除)。例如,如果您使用 mysql,您可以在 phpmyadmin 或等效工具中轻松完成此操作。
根据您的更改进行更新。即使您只能通过应用程序访问,您仍然以具有或不具有更新、删除、插入或选择权限的用户身份连接到数据库,因此确保不执行此类查询的唯一方法是更改该用户的权限。
一个简单但远非万无一失的方法是使用查询中不能包含的单词的黑名单,例如插入、更新等。或者,您可以在 sql 查询上使用解析器,该解析器将为您提供推导所需的信息是否允许查询。我只会将选项 1 作为最后的手段,或者如果您的检查需求相对简单。
在数据库层,确保 Rails 应用程序正在访问数据库的用户只有您想要的访问权限,也许只有 SELECT。