Ruby on Rails Mongoid和Webfaction:未授权查询(错误16550)
我使用的是2.4.4版,遵循http://docs.webfaction.com/software/mongodb.html上的程序,并使用Mongoid和Ruby on Rails。 我还在我正在使用的db中使用“userAdminAnyDatabase”权限创建了一个用户,并将其与此rails mongoid配置一起使用:
production: sessions: default: database: hosts: - localhost: username: password:
我有服务器使用–auth标志运行,我也尝试使用mongodb cpmmand行的用户,它工作但我部署了我的Rails应用程序,我仍然得到:
失败,错误16550:“未授权查询
有什么我想念的吗? 也许我需要创建一个特殊的用户?
userAdminAnyDatabase角色并不完全按照您的想象执行。 以下是MongoDB文档所说的内容:
重要提示 :由于具有userAdminAnyDatabase和userAdmin的用户除了自己的访问级别外,还能够创建和修改权限,因此该角色实际上是MongoDB系统的超级用户。 但是,userAdminAnyDatabase和userAdmin不会明确授权用户使用用户管理之外的任何权限。
为用户创建userAdminAnyDatabase角色,实际上只允许他们管理数据库(创建新用户,删除用户,访问系统。*集合),但实际上并不授权他们读取或写入任何数据。
如果要创建具有所有管理员权限并且还可以在任何数据库中读写的超级用户,则还需要为用户提供readWriteAnyDatabase角色。
db.addUser({user: 'username', pwd: 'password', roles: ['readWriteAnyDatabase', 'userAdminAnyDatabase']})