Appearance
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 连接。