MongoDB用户授权和管理

转载于https://blog.csdn.net/yu757371316/article/details/55210536

1、mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可 
运行如下:

[root@namenode mongodb]# ./bin/mongo
MongoDB shell version: 1.8.2
connecting to: test
> use test;
switched to db test

 

 

2、添加管理用户(mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase),

>use admin
>db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

 

 

注:添加完用户后可以使用show users或db.system.users.find()查看已有用户

3、添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭

4、使用权限方式启动MongoDB

./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongod.log --fork --auth

 

或者在配置文件中修改:

 auth = true
#noauth = true

 

5、进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的。

> use admin
> db.auth("admin","123456")   #认证,返回1表示成功

 

 

6、验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,

> use mydb
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})

 

 

7、使用创建的用户root登录进行数据库操作:

[root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
> db
mydb
> use mydb
switched to db mydb
> show collections

 

 

或者使用: 
./mongo -u username -p password --port port --authenticationDatabase databaseName 
./mongo databaseName -u username -p password --port port

然后就可以进行增删改查各种数据操作…

8、查看已存在的用户

> db.system.users.find()

 

9、删除用户

> use mydb
> db.system.users.remove({user:"root"})
> db.system.users.find()
posted @   技术颜良  阅读(12523)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示