我有一个迁移的 Parse 应用程序在 Parse 2.1.6 上运行。它使用简单的 MongoDB 3.0.8(RocksDB 引擎)设置,并带有身份验证。它正在使用的用户具有以下权限:
[{ "role" : "dbAdmin", "db" : "parse" },
{ "role" : "readWrite", "db" : "parse"}]
当 Parse 服务器启动或尝试处理任何请求时,我得到:
[MongoError: not authorized for query on parse._SCHEMA]
鉴于以下情况,这似乎很奇怪:
- 用户显然有权查询此数据库上的任何集合,
- 同一用户确实能够通过 mongo 控制台或 robomongo 查询此集合,
- Parse.com 在使用此数据库时正常工作,与同一用户,
- 我实际上可以在本地运行相同的 Parse 应用程序,并与该用户指向同一个远程 MongoDB,并且它可以在没有此类错误的情况下工作。
这有点疯狂。我觉得我在这里错过了一些非常基本的东西。有什么想法吗?
更新:作为请求,示例代码显示了服务器如何启动:
var api = new ParseServer({ appId: 'the app id',
masterKey: 'the master key',
clientKey: 'client key',
cloud: '/absolute_path/cloud/main.js',
serverURL: 'https://myserver.com/parse',
push:
{ ios:
{ production: false,
bundleId: 'thebundleid.com',
pfx: <Buffer ... > } },
oauth: { facebook: { appIds: 'appId' } },
databaseURI: 'mongodb://user@pass:127.0.0.1:27017'
});
app.use('/parse', api);