# 用户与角色管理（createUser、roles）

URL: https://caijiao.org/mongodb/07-security/01-users-roles
Source: docs/mongodb/07-security/01-users-roles.md
Description: 本章节介绍 MongoDB 的用户与角色管理，包括如何创建用户及分配角色，保障数据库安全。

MongoDB 通过用户和角色管理实现访问控制，确保数据安全和权限分配合理。

## 创建用户

使用 `db.createUser()` 命令创建新用户，并分配相应角色。

### 示例

创建具有读写权限的用户：

```js
db.createUser({
  user: "appUser",
  pwd: "securePassword123",
  roles: [ { role: "readWrite", db: "myDatabase" } ]
})
````

* `user`：用户名。
* `pwd`：密码。
* `roles`：分配的角色数组，指定权限和数据库。

## 角色（roles）

[MongoDB](/mongodb/) 内置多种角色，常见的有：

* `read`：只读权限。
* `readWrite`：读写权限。
* `dbAdmin`：数据库管理权限（如索引管理、统计信息）。
* `userAdmin`：用户管理权限。
* `clusterAdmin`：集群管理权限。

也支持自定义角色，满足特定需求。

## 查看用户与角色

* 查看当前数据库用户：

```js
db.getUsers()
```

* 查看角色信息：

```js
db.getRoles({ showBuiltinRoles: true })
```

## 安全建议

* 避免使用默认用户，及时创建具有最小权限的用户。
* 使用强密码和加密连接。
* 定期审计用户权限，删除不必要账户。

---

通过合理管理用户与角色，MongoDB 保证数据库访问安全与操作合规。
