如何在服务器端拒绝集合插入/更新



我有一个连接到一些生产远程集合(由另一个应用程序 B 使用(的Meteor应用程序 (A(,我只想让 A 从 B 的集合中读取数据,而不是修改 B 的集合数据(即使修改发生在 B 的服务器端(。
我怎样才能在 A 内部做到这一点?

您可以完全控制 Meteor 应用程序服务器代码在数据库中可以执行的操作。

要确保您的应用程序 A 服务器代码无法写入数据库,只需切勿使用任何集合insertupdateupsert 方法。

Meteor 的特殊之处在于它还可以允许客户端发起的数据库修改:只需确保删除insecure包,并且永远不要在服务器代码中使用集合allow方法。

现在,对于您的案例,非常简单、防弹和标准的做法解决方案就是为您的应用程序 A 创建一个不同的数据库用户,只有读取权限,如 @NeilLunn 所述。然后,此不同的数据库用户凭据是您传递给应用程序 A 的 MONGO_URL 变量的一部分,因此这是应用程序 A 连接到与应用程序 B 通用的远程数据库的唯一方式。

最新更新