MongoDB笔记(三):配置访问账号

MongoDB Shell介绍

MongoDB shell 是MongoDB自带的一个交互式的JavaScript shell,配置账号需要使用到。具体更多的用法可以参考:
落_尘 MongoDB学习笔记(五)——MongoDB shell 与 MongoDB Compass

连接数据库

打开Windows命令行,切换到MongoDB安装目录,输入命令

.\mongo localhost:27017/admin

出现类似信息,说明已经成功连上数据库。因为我已经添加了用户,所以命令里带有username、userpassword参数。

MongoDB笔记(三):配置访问账号

添加超级管理员

首先我们需要在自带的admin数据库里添加一个拥有root最高权限的管理账户,用来添加和管理其他账户。
切换到admin

use admin

创建root权限的用户,

db.createUser({user:"root",pwd:"123456",roles:["root"]})

提示

Successfully added user......

说明创建用户成功。
下一步需要开启验证。

开启身份验证

在安装目录\bin里找到配置文件
MongoDB笔记(三):配置访问账号
打开文件找到 security,取消注释,并添加开启验证的设置
MongoDB笔记(三):配置访问账号

修改完成后,重启MongoDB服务。使用命令(需要windows管理员权限):

net stop MongoDB
net start MongoDB

然后断开再重连数据库

> exit
bye
D:\MongoDB\Server\4.0\bin> .\mongo localhost:27017/admin --username root --password 123456

使用命令 show users 可以查看当前数据库的用户

> show users
{
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}
>

创建普通用户

假设我们有一个名为test的数据库,需要为它创建一个访问账号,应该按照以下步骤操作:

  1. 切换到test库

    use test
    
  2. 创建用户,赋予读写权限

    db.createUser({user:"test",pwd:"123456",roles:["readWrite"]})
    > show users
    {
            "_id" : "test.test",
            "user" : "test",
            "db" : "test",
            "roles" : [
                    {
                            "role" : "readWrite",
                            "db" : "test"
                    }
            ],
            "mechanisms" : [
                    "SCRAM-SHA-1",
                    "SCRAM-SHA-256"
            ]
    }
    

关于更多账户权限和参数的意义,可以参考:
落_尘 MongoDB学习笔记(六)——MongoDB配置用户账号与访问控制
或者官网文档