Skip to content

MongoDB 用户管理

启用认证

默认安装下 MongoDB 不开启认证。生产环境应在 mongod.conf 中启用:

yaml
security:
  authorization: enabled

重启 mongod 后,未授权用户将无法执行需要权限的操作。

在 admin 库创建管理员

首先在未开启认证或已用本地权限登录的情况下,在 admin 库创建管理员用户:

javascript
use admin
db.createUser({
  user: "admin",
  pwd: "yourPassword",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})

为业务库创建用户

javascript
use mydb
db.createUser({
  user: "appuser",
  pwd: "appPassword",
  roles: [ { role: "readWrite", db: "mydb" } ]
})

常用内置角色

角色说明
read只读
readWrite读写
dbAdmin数据库管理(索引、统计等)
userAdmin用户与角色管理
root超级权限(仅 admin)

连接时认证

bash
mongosh "mongodb://appuser:appPassword@localhost:27017/mydb?authSource=mydb"

或在 Shell 内:

javascript
db.auth("appuser", "appPassword")

查看与删除用户

javascript
use admin
db.getUsers()
db.dropUser("appuser")

下一节介绍 MongoDB 连接