MongoDB入门系列 ===; 创建用户

Posted 刘翾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB入门系列 ===; 创建用户相关的知识,希望对你有一定的参考价值。

全系列目录

文章目录


本文代码测试环境: win10, MongoDB 4.0.5

mongo安装教程不出, 可以自行在网络中搜索
刚安装好的mongodb会提示:

2019-01-05T11:22:42.470+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-01-05T11:22:42.470+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.

我们可以创建用户来解决这个问题.

1. 创建用户

由于刚安装完, 没有权限校验因此可以先创建一个超级管理员

use admin

db.createUser(
   
        user:"root", // 用户名
        pwd:"root", // 密码
        roles:[ // 角色
         role:"root",db:"admin" // 超级管理员
        ]
   
)

// 输入命令, 提示Successfully added user:
// 之后可以输入show users命令, 查看详情

1.1 角色介绍

1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore;
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root  

2. 修改密码

db.changeUserPassword("用户名", "密码")

3. 删除用户

db.dropUser("用户名");

4. 接着文章开头

创建完超级管理员之后最后再使用dbAdmin, 或者dbAdminAnyDatabase创建一个日常开发角色. 命令还是createUser, 只需要把roles里面的role更改一下就好.

创建完之后在MongoDB(博主的版本为4.0.5)的安装目录下找到bin文件夹, 打开里面的mongod.cfg.

增加字段authorization: enabled, 开启权限校验

之后使用net stop mongodb, net start mongodb 重启一下mongo的服务

再次进入的时候就会发现, 之前的warning不见了.

5. 登录

登录用户有两种方法

// 1
输入命令 mongo
输入命令 use admin(切换到刚刚创建用户的数据库, 如不切换这时的数据库默认为test)
输入命令db.auth("用户名", "密码") 返回值为1代表登录成功
// 2
mongo -u "用户名" -p "密码" --authenticationDatabase 指定数据库 --port 指定端口

--authenticationDatabase 不写默认test数据库
--port 不写默认为27017, 如果想修改可以在mongod.cfg文件中修改

以上是关于MongoDB入门系列 ===; 创建用户的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB权限控制

MongoDB基础之登录验证及用户管理

MongoDB的权限管理

mongoDB身份验证

MongoDB 2.2安全

mongodb创建用户和库