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

时间:2016-07-23 15:11:46

标签: mongodb passwords admin username

我正在尝试创建一个包含用户名和密码的数据库,有些回答说是ad​​dUser for admin。但mongodb没有调用任何数据库。

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

MacBook:~ root# mongod

 MacBook:~ macbook$ mongo

在新标签页中,我按照命令

运行
MacBook:~ root# mongo

然后我看到我的dbs用show dbs命令显示以下内容

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

我尝试使用此local数据库和system.indexes,但我没有获得任何成功结果。我做错了吗?希望你的帮助。我是mongodb的新手,我正在使用monogo 3.2.4 versioin

2 个答案:

答案 0 :(得分:2)

由于这是Google中“ mongodb使用用户名和密码创建数据库” 查询中的第一个堆栈溢出链接,因此答案如下:

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

这些命令将创建一个名为mydb的数据库,为一个名为myuser的用户分配密码mypassword并授予该用户对该数据库的完全访问权限。

请确保您事先是管理员,以便能够创建数据库和用户。

[注意]为了使新创建的数据库显示在命令show dbs返回的列表中,您需要将至少一个文档插入到新创建的数据库的集合中。例如:

> mydoc = { firstName : "Adam" }
> db.mycollection.insert( mydoc  );

答案 1 :(得分:0)

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

启用身份验证后,您需要创建用户以授予他们访问相应数据库的权限。默认情况下,admin数据库不存在,它将在您创建第一个用户时动态创建。

有关详细信息和示例,请参阅Enable Authentication页面。