18

Windows下设置Mongodb用户名密码

 3 years ago
source link: http://www.cnblogs.com/flower-dance/p/13736599.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

MongoDB认证:

在默认的情况下,Mongodb是监听在127.0.0.1 IP上的,端口号默认为27017,任何客户端都可以连接,不需要认证

默认情况下,Mongodb也是没有管理账户的,除非你在admin库中创建了用户,当然光创建了用户是没有用的,还要用--auth参数启动,不然认证也是不生效的

好处:

随时可以连接,不用配置一堆配置文件

坏处:

公网服务器搭建的Mongodb,那么所有人都可以玩你的数据,并且会有网管发来的邮件,然后添加认证

首先先启动Mongodb,以不带认证的方式启动

2UN3U3e.png!mobile

创建所有数据库管理员账户:

1:以管理员身份运行cmd,然后cd到Mongodb的bin的目录

C:\WINDOWS\system32>cd F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15

C:\WINDOWS\system32>F:

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15>cd bin

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15\bin>

2:输入命令mongo.exe,进入mongodb命令界面:前提是先启动Mongodb

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15\bin>mongo.exe

3:创建数据库,我用的库叫test

> use test;
switched to db test

4:然后切换回admin库创建用户

> use admin
switched to db admin

5:创建管理员账号,创建之前需要先了解一下Mongodb内置角色

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

6:然后创建管理员账号:

> db.createUser({user:"root",pwd:"root",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

7:然后验证一下是否成功

> db.auth("root","root")
1

在我创建完成后使用这个账号去连接test库时,却还是连接不上,经过排查后,发现这个创建的用户是在admin库创建的,需要再去test库创建一个用于认证链接test库的账号

然后再Mongodb启动的时候加上 --auth就可以了

作者:彼岸舞

时间:2020\09\26

内容关于:工作中用到的小技术

本文来源于网络,只做技术分享,一概不负任何责任


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK