MongoDB 用户管理涉及多个方面,包括用户认证、权限控制、角色分配等。以下是 MongoDB 用户管理的相关要点:
用户认证
- 启用认证:默认情况下,MongoDB 不启用用户认证。为了强制开启用户访问控制,需要在启动 MongoDB 实例时使用
--auth
选项或在配置文件中设置security.authorization: enabled
。 - 创建管理员用户:在
admin
数据库中创建一个管理员用户,该用户将用于管理所有数据库的访问权限。 - 身份验证数据库:用户由用户名和身份验证数据库唯一标识。在特定数据库中创建该用户,该数据库即为用户的身份验证数据库。
权限控制
- 基于角色的访问控制 (RBAC):MongoDB 使用基于角色的访问控制来管理用户权限。每个角色都有一组权限,这些权限定义了用户可以对数据库执行的操作。
- 内置角色:MongoDB 提供了一些内置角色,如
read
、readWrite
、dbAdmin
、userAdmin
等,每个角色都有特定的权限。
角色分配
- 创建角色:可以在
admin
数据库中创建自定义角色,并为角色分配特定的权限。 - 角色继承:角色可以继承其他角色的权限,这允许创建更细粒度的权限控制。
用户管理命令
- 创建用户:使用
db.createUser()
方法创建新用户。 - 查看用户:使用
db.system.users.find()
查看当前数据库上的所有用户。 - 修改用户:使用
db.updateUser()
方法更新用户信息或权限。 - 删除用户:使用
db.dropUser()
方法删除用户。
审计日志
- 审计功能:MongoDB 企业版支持审计功能,允许管理员和用户跟踪系统活动。审计日志可以输出到控制台、syslog、JSON 文件或 BSON 文件。
通过上述要点,可以有效地管理 MongoDB 数据库的用户,确保数据的安全性和完整性。