【问题标题】:How can I allow an external application to connect directly to my Ruby on Rails-integrated PostgreSQL database?如何允许外部应用程序直接连接到我的 Ruby on Rails 集成的 PostgreSQL 数据库?
【发布时间】:2016-11-04 22:30:20
【问题描述】:

我有一个数据库和几个需要使用它的应用程序(一个 Ruby on Rails 应用程序,默认情况下与数据库集成,还有一堆运行 Java 插件的 Minecraft 服务器)。现在,我正在使用我的 Web 应用程序的 REST api 来访问数据库。

所以:插件 -> api -> db -> api -> 插件

我正在寻找一种方法让我的插件直接访问数据库,而无需先通过网络应用程序。

插件 -> 数据库 -> 插件

如何允许外部应用程序访问我的数据库?如何确保只允许某些应用程序访问数据库? (另外:我应该这样做吗?)

【问题讨论】:

  • 任何拥有 postgres 连接字符串和凭据的人都可以访问数据库。

标签: ruby postgresql ruby-on-rails-3


【解决方案1】:

看看 ActiveRecord 是如何连接到数据库的,你会发现它只是使用相同的方式连接到 Postgres(一个登录连接字符串,或一组凭据等),同样的方法可以被任何其他应用程序使用。

基本上这意味着如果另一个应用程序知道:

  • 托管数据库的 URL 或 IP 地址
  • 用户名
  • 密码
  • 港口

...并且没有任何限制,例如阻止访问的防火墙规则,那么应用程序应该能够直接与 DB 对话。 ActiveRecord 基本上只是数据库之上的一个软件层,但它并不“拥有”或“控制”数据库。从技术上讲,您的 Rails 应用程序是数据库服务器的客户端。

【讨论】:

  • 这并不完全正确,数据库必须在正确的端口等上侦听......另外可能必须设置防火墙规则以允许访问。但鉴于这些问题已排序,那么是的 url/ip 地址端口 usr 名称密码和 db 名称知识将带您到那里
猜你喜欢
  • 2014-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 2011-08-24
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
相关资源
最近更新 更多