在 DataMapper 中对单个请求使用不同的数据库用户

发布于 2024-10-11 02:08:47 字数 229 浏览 5 评论 0原文

我正在开发一个 Rails 3 应用程序,该应用程序调用具有非常严格的权限结构的旧数据库。记录可见性是按数据库用户设置的,因此在查看受限记录时,我需要使用用户的凭据来发出选择请求。

我可以使用 DataMapper.setup 更改与我连接的用户,但问题是这不是特定于请求的:它为所有传入的请求设置它。

如何设置 DataMapper 对单个数据库使用特定的数据库用户或一小组查询,同时不影响应用程序的其余部分?

I'm working on a Rails 3 application that makes calls to a legacy database that has a very rigid permissions structure. Record visibility is set per database user, so when viewing restricted records, I need to use the user's credentials to make the select request.

I can use DataMapper.setup to change the user I'm connected with, but the problem is that this is not request specific: it sets it for all requests coming in.

How can I set DataMapper to use a specific database user for a single or small set of queries, while not affecting the rest of the application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

握住你手 2024-10-18 02:08:47

您是否尝试过使用多个数据存储连接?例如,

DataMapper.setup(:default, "oracle:://user1:password1@host")
DataMapper.setup(:restricted, "oracle://user2:password2@host")

您可以像平常一样使用default连接,并通过将代码包装在块中来使用restricted连接:

DataMapper.repository(:restricted) {
  Person.first
}

更多信息可以在http://datamapper.org/docs/misc

Have you tried using multiple data-store connections? e.g.

DataMapper.setup(:default, "oracle:://user1:password1@host")
DataMapper.setup(:restricted, "oracle://user2:password2@host")

You can then use the default connection as normal, and use the restricted connection by wrapping code in a block:

DataMapper.repository(:restricted) {
  Person.first
}

More information can be found on http://datamapper.org/docs/misc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文