mongoDB4.0x 初始化建库创建用户(db version v3.4.1亲测可用)

本文详细介绍了如何在MongoDB中创建超级用户,设置访问控制,以及如何为不同数据库创建具有特定权限的用户。从无访问控制模式启动MongoDB,到创建超级用户,再到设置授权方式启动服务并验证权限,最后为其他数据库创建用户权限,全程实操步骤清晰明了。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:本文为优快云博主「han_chuang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

 

本次转载 实测 db version v3.4.1,稍有补充和改动(感谢原作者,很方便,一次成功)

 

1、以无访问控制模式启动mongodb

管理员权限打开cmd窗口

官方语句:

mongod --port 27017 --dbpath / var / lib / mongodb

如果你把bin目录配置到了环境变量中,那么不用上面的,直接执行下面的就行:

net start mongodb

ps:mongodb3.x版本之后,在安装过程中就已经自动把服务加到window系统中了,所以不需要乱七八糟配置去配置服务,可以参考这个看一下mongodb4.0的安装方式

2、连接到实例

mongo --port 27017

3、创建超级用户,这个用户可以管理所有用户的增删改以及权限控制

admin这个库是mongodb自动带的,专门管理用户和权限的,现在需要创建一个超级管理员权限(拥有userAdminAnyDatabase和readWriteAnyDatabase两个权限)的用户。用户名和密码随便写,但是角色必须是这两个:

use admin

db.createUser(

  {

    user: "myUserAdmin",

    pwd: "123456",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]

  }

)

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

创建成功后会打印出来结果:

 

4、然后关掉mongodb服务

官方的方法是在当前实例下,执行:

db.adminCommand( { shutdown: 1 } )

或者:

net stop mongodb

再或者去任务管理器关掉就行了

5、以授权方式启动mongodb服务,并验证权限

启动命令最后加入  --auth 

或者:

设置配置文件mongod.cfg(在mongo安装目录的bin目录下),以官方方式打开授权认证:

 

管理员权限运行cmd,并输入以下命令启动mongodb:

net start mongodb 

验证权限有两种方式

连接实例的时候就验证

mongo --port 27017 -u "myUserAdmin" --authenticationDatabase "admin" -p

之后会让你输入密码:输入123456

 

连接实例之后,使用数据库的时候验证

先连接实例:

mongo --port 27017

然后验证:(用户名密码是上面自己设置的,要记下来)

use admin

db.auth("myUserAdmin", "123456" )

返回一个:1,就代表成功了

 

6、给其他数据库创建用户权限

一旦通过用户管理员身份验证,就可以使用 db.createUser()创建其他用户。可以将任何内置角色或用户定义的角色分配给用户,角色可以看官网介绍

我这里创建了一个mytest数据库:

user mytest

这条语句就是,数据库存在则转到该数据库,不存在则创建之后转到该数据库

然后创建用户

use mytest

db.createUser(

  {

    user: "myTester",

    pwd: "123456",

    roles: [ { role: "readWrite", db: "mytest" },

             { role: "read", db: "hanchuang" } ]

  }

)

db.createUser({user:"myTester", pwd:"123456", roles: [{role:"readWrite", db: "mytest"}]})

 

创建成功之后,断开实例连接:

exit

然后重新以验证方式登录实例,这里使用第一种方式(连接时验证):

mongo --port 27017 -u "myTester" --authenticationDatabase "mytest" -p

输入密码:123456,搞定!

 

现在你有权在mytest中执行读写操作了:

use mytest

 

db.users.insertOne({name:"hanchuang",phone:"133xxxxxxx"})

 

查询一下插入结果:

 db.users.find().pretty()

 

ps:mongodb3.x版本之后,在安装过程中就已经自动把服务加到window系统中了,所以不需要乱七八糟配置去配置服务,可以参考这个看一下mongodb4.0的安装方式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值