Orr*_*Orr 12 ruby-on-rails mongodb nosql mongoid moped
据说这个问题已解决了最新版本的轻便摩托车但仍然在我身上发生.我有一个带有Mongoid的rails 4.2应用程序,为具有readWrite和dbOwner角色的MongoDB DB创建了一个用户,并在mong.conf文件中设置了auth = true.
我可以使用Mongo shell或使用Mongo驱动程序的简单Java应用程序,使用该用户凭据对数据库执行任何操作.
但是,当尝试使用Mongoid进行身份验证时,我总是会收到此错误:
失败,错误13:"未授权查询my_db.my_collection"
这是我的mongoid.yml文件的相关部分:
production:
# Configure available database sessions. (required)
sessions:
# Defines the default session. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: my_db
hosts:
- localhost:27017
username: my_username
password: my_password
Run Code Online (Sandbox Code Playgroud)
我也尝试用服务器的远程地址替换主机并远程访问它(这与禁用的身份验证选项一起使用)没有成功.为了它的价值,我可以通过调试mpped/node.rb文件看到凭证,在ensure_connected方法中我看到@credentials变量包含我的用户名和密码我在这里缺少什么?谢谢!
Cla*_*lby 11
也遇到这个问题.我愿意猜你是在运行MongoDB 3+吗?
坏消息: Moped 2(今天由mongoid使用)不支持MongoDB 3+的身份验证.
Moped还缺乏支持服务器版本3.0的许多基本功能.例如,它不支持使用MongoDB 3.0或最新版本的有线协议进行身份验证(其中包括listCollections,listIndexes等命令以及执行批量写入的功能).将Mongoid与Ruby驱动程序2.0集成将为ODM带来许多此功能和前向兼容性. 资源
好消息: 目前正在进行重大改写(Mongoid 5),将由MongoDB团队提供支持.你今天可以从大师那里拿出来测试一下......但我不建议生产,因为它非常不稳定.
解决方案选项
归档时间: |
|
查看次数: |
2659 次 |
最近记录: |