MongoDB角色 - 用户访问多个数据库

时间:2016-02-19 13:30:20

标签: mongodb authentication

我想将用户访问MongoDB中的2个数据库。

我试过这个,但它只能访问admin db。

use admin;
db.runCommand(
{
    createUser: "myuser",
    pwd : "mypwd",
    roles: 
    [
        { role: "readWrite", db: "db1" } ,
        { role: "readWrite", db: "db2" } 
    ]
});

我尝试在每个数据库上创建用户,但我最终得到了2个用户: user@db1user@db2

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

用户基本上可以保存在任何数据库中,这就是为什么你可以在命令行工具上提供 --authenticationDatabase 的原因。

以cli为例,您的命令行应该看起来像这样

require 'singleton'
class Tst_case1
  include Singleton
  def sayHello
    puts "hello"
  end
end
case1 = Tst_case1.instance
case1. #there should be a popover listing the available methods, but no.

mongo yourhost:yourport/db1 -u myuser --authenticationDatabase admin -p

分别是您必须用 mongo yourhost:yourport/db2 -u myuser --authenticationDatabase admin -p yourhost 替换实际值。