Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在mongoid.yml中指定身份验证数据库_Ruby On Rails_Ruby_Mongodb_Mongoid_Database - Fatal编程技术网

Ruby on rails 在mongoid.yml中指定身份验证数据库

Ruby on rails 在mongoid.yml中指定身份验证数据库,ruby-on-rails,ruby,mongodb,mongoid,database,Ruby On Rails,Ruby,Mongodb,Mongoid,Database,我正试图通过mongoid.yml进行身份验证,但我想要验证的用户在管理数据库中的身份。如果我尝试在database字段中指定admin数据库,它会将所有集合也放在那里,我不希望这样 有没有办法将我的数据库字段设置为我想要的数据库,但指定一个单独的身份验证数据库? 这是我目前的mongoid.yml文件 development: sessions: default: database: XC_DEV hosts: - IP:PORT

我正试图通过mongoid.yml进行身份验证,但我想要验证的用户在管理数据库中的身份。如果我尝试在database字段中指定admin数据库,它会将所有集合也放在那里,我不希望这样

有没有办法将我的数据库字段设置为我想要的数据库,但指定一个单独的身份验证数据库? 这是我目前的mongoid.yml文件

development:
  sessions:
    default:
      database: XC_DEV
      hosts:
        - IP:PORT
      username: user
      password: password

这个问题已经提出一年多了,但它值得一个答案

是,auth_source选项指定身份验证数据库。您必须使用mongoid 5.0.0或更高版本()。注意:mongoid默认为管理数据库的名称

找不到适用于的此选项。我在实际数据库上创建了身份验证(可能有一种我不知道的方法)

mongoid.yml的段(5.0.0):

开发:
客户:
违约:
数据库:数据库名称
主持人:
-本地主机:27017
选项:
#用于身份验证的用户的名称。
用户:“
#用于身份验证的用户的密码。
密码:“
#用户的数据库角色。
角色:
-“数据库所有者”
#更改默认的身份验证机制。有效选项包括:紧急停堆,
#:mongodb_cr、:mongodb_x509和:普通。(3.0的默认值为:紧急停堆,默认值
#在2.4和2.6中为:普通)
#认证机械::紧急停堆
#要对用户进行身份验证的数据库或源。(默认值:admin)
授权来源:admin

此答案应标记为解决方案,因为问题是使用Mongoid 4文档的建议解决方案A解决的。
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