 
接下来我们来 **一步步给 MongoDB 添加用户账户（角色管理）**。

假设你希望创建一个：
- 用户名：`shumengya`
- 密码：`shumengya520`
- 权限：对整个数据库系统有管理权限（root 权限）
    

---

## 🧭 步骤 1：进入 MongoDB Shell

MongoDB 7.x 之后使用的是新客户端 `mongosh`：

```bash
mongosh
```

如果提示 `command not found`，可以执行：

```bash
mongo
```

---

## 🧩 步骤 2：切换到 `admin` 数据库

（MongoDB 的用户管理都存在 `admin` 数据库里）

```javascript
use admin
```

---

## 🧰 步骤 3：创建管理员用户

运行下面的命令创建一个超级管理员账号：

```javascript
db.createUser({
  user: "shumengya",
  pwd: "shumengya520",
  roles: [ { role: "root", db: "admin" } ]
})
```

✅ 成功后会输出：

```
Successfully added user: {
    "user" : "shumengya",
    "roles" : [ { "role" : "root", "db" : "admin" } ]
}
```

---

## 🔐 步骤 4：启用身份验证

编辑 MongoDB 的配置文件：

```bash
sudo nano /etc/mongod.conf
```

找到或添加以下部分（注意缩进）：

```yaml
security:
  authorization: enabled
```

保存退出后，重启 MongoDB：

```bash
sudo systemctl restart mongod
```

---

## ✅ 步骤 5：验证登录是否成功

```bash
mongosh -u shumengya -p shumengya520 --authenticationDatabase admin
```

如果看到类似：

```
test>
```

说明登录成功 ✅

---

## 💡 可选：为特定数据库创建普通用户

比如你有个业务数据库叫 `farmgame`，可以创建普通读写用户：

```javascript
use farmgame
db.createUser({
  user: "gameuser",
  pwd: "gamepass123",
  roles: [ { role: "readWrite", db: "farmgame" } ]
})
```

---

## 🧱 总结

|操作|命令或说明|
|---|---|
|创建管理员|`db.createUser({user: "shumengya", pwd: "...", roles: [{role: "root", db: "admin"}]})`|
|开启认证|`/etc/mongod.conf` → `security.authorization: enabled`|
|登录验证|`mongosh -u shumengya -p shumengya520 --authenticationDatabase admin`|

---
