我试图通过mongoid.yml进行身份验证,但我想要在admin数据库中进行身份验证。如果我尝试在数据库字段中指定管理数据库,它将把所有集合放在那里,我不想要那样。
有没有办法将我的数据库字段设置为我想要的数据库,但是指定一个单独的身份验证数据库? 现在是我的mongoid.yml文件
development:
sessions:
default:
database: XC_DEV
hosts:
- IP:PORT
username: user
password: password
答案 0 :(得分:16)
问题已超过一年,但值得回答。
是的, auth_source 选项指定了身份验证数据库。你必须使用mongoid 5.0.0或更高版本(documentation on the mongodb website )。注意mongoid默认为admin数据库。
无法为Mongoid 4 configuration找到这样的选项。我在实际数据库上创建了身份验证(可能有一种我不知道的方式)。
mongoid.yml(5.0.0)的细分:
development:
clients:
default:
database: database_name
hosts:
- localhost:27017
options:
# The name of the user for authentication.
user: "<%= Rails.application.secrets.mongoid['user'] %>"
# The password of the user for authentication.
password: "<%= Rails.application.secrets.mongoid['password'] %>"
# The user's database roles.
roles:
- 'dbOwner'
# Change the default authentication mechanism. Valid options are: :scram,
# :mongodb_cr, :mongodb_x509, and :plain. (default on 3.0 is :scram, default
# on 2.4 and 2.6 is :plain)
# auth_mech: :scram
# The database or source to authenticate the user against. (default: admin)
auth_source: admin