MongoDB身份验证后添加数据库和用户

时间:2019-05-07 08:59:52

标签: mongodb

我有一个在服务器上运行的MongoDB 4实例,副本设置在同一台计算机上,具有不同的端口。

我已经使用以下命令创建了超级用户:

use admin
db.createUser({user: "mongo_admin",pwd: "password",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]);

然后我为新的数据库数据库创建了一个专用用户

  

使用database1   db.createUser({       用户:“ user1”,       pwd:“密码”,       角色:[“ readWrite”,“ dbAdmin”]   });

在此之后,我启用了auth和,因此我将用户db.auth与我的database1一起使用(使用“ user1”)。

那很好,它可以工作。

现在,我的问题是:我需要创建其他数据库,然后为该数据库创建一个专用用户来管理该数据库,但是启用了身份验证后,我无法在新创建的数据库database2上执行任何操作。如果尝试,请使用我的mongo_admin超级用户连接到新数据库2,并尝试使用以下命令为此数据库创建dbAdmin:

mongo
db.auth("mongo_admin", "password")
use database2
db.createUser({user: "user2, pwd: "password",roles: ["readWrite", "dbAdmin"]});

我收到此错误:

 E QUERY    [js] Error: couldn't add user: not authorized on database2 to execute command

因此,现在我知道我可以在每个数据库上禁用身份验证并免费工作,但是,我不想这样做,因为数据库正在生产中,我希望避免这种情况。

有什么建议吗?

0 个答案:

没有答案