如何在mongodb shell中创建带有用户名和密码的数据库

3

我正在尝试创建一个包含用户名和密码的数据库,一些答案建议使用addUser来添加管理员,但是在mongodb中并没有任何被称为addUser的数据库。

我使用超级用户权限运行mongodb。

MacBook:~ root# mongod

或者

 MacBook:~ macbook$ mongo

在新标签页中,我运行了以下命令:
MacBook:~ root# mongo

然后我使用show dbs命令查看我的数据库,结果如下:

>show dbs
clist  0.078GB
hinfo  0.078GB
local  0.078GB

我尝试使用带有 system.indexes 的本地数据库,但是没有得到任何成功的结果。我做错了吗?希望您的帮助。我是mongodb的新手,我正在使用 monogo 3.2.4版本

2个回答

13

由于在Google中查询“mongodb create db with username and password”时,这是第一个来自Stack Overflow的链接,因此这里是答案:

use mydb
db.createUser(
   {
     user: "myuser",
     pwd: "mypassword",
     roles: [ "dbOwner" ]
   }
)

这些命令将创建一个名为mydb的数据库,分配一个名为myuser且密码为 mypassword 的用户,并授予他在该数据库上的完全访问权限。
请确保您是管理员,以便能够创建数据库和用户。
[注意] 为了让新创建的数据库在命令show dbs返回的列表中显示,您需要在新创建的数据库的集合中插入至少一个文档。例如:
> mydoc = { firstName : "Adam" }
> db.mycollection.insert( mydoc  );

0

MongoDB中的身份验证是在实例级别进行的。这意味着当您启动mongod时,您需要传递--auth选项。

启用身份验证后,您需要创建用户以使他们能够访问适当的数据库。默认情况下,admin数据库不存在,当您创建第一个用户时,它将被动态创建。

请参阅启用身份验证页面了解详细信息和示例。


现在不是可能的吗? - undefined
抱歉,为了更清晰明了,我修改了我的回答。 - undefined
我按照 https://docs.mongodb.com/manual/tutorial/enable-authentication/ 这个教程创建了一个用户。成功地创建了一个管理员用户。但是无论是否使用用户名和密码登录,我都可以访问任何数据库。这适用于新的数据库吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接