📜  MongoDB角色管理方法(1)

📅  最后修改于: 2023-12-03 15:32:57.512000             🧑  作者: Mango

MongoDB角色管理方法

MongoDB是一种流行的文档数据库,具有灵活的数据模型和可伸缩性。为了保护数据库中的数据,MongoDB提供了一套角色管理方法。本文介绍了这些角色及其用法。

MongoDB的预定义角色

MongoDB预定义了几种角色以进行数据库的管理、操作和权限控制。

数据库用户角色
  • read:允许用户读取指定的数据库。
  • readWrite:允许用户读取和写入指定的数据库。
  • dbAdmin:允许用户执行数据库范围内的管理操作。
  • userAdmin:允许用户在指定的数据库中创建、修改和删除其他用户及其权限。
数据库操作角色
  • dbOwner:在指定的数据库上获得所有权限。
  • dbUser:允许用户在处理自己的数据时执行数据库操作。
集合操作角色
  • read:允许用户读取指定收藏夹的数据。
  • readWrite:允许用户读写指定的缩写。
  • dbAdmin:允许用户在指定的集合上执行管理操作。
  • userAdmin:允许用户在指定的收藏夹上创建、修改和删除其他用户及其权限。
集群操作角色
  • clusterAdmin:允许用户执行集群范围内的管理操作。
  • clusterManager:允许用户对整个集群执行监视和管理操作。
  • clusterMonitor:允许用户读取集群范围内的监视结果。
  • hostManager:允许用户执行机器级别的管理操作。
MongoDB用户和角色操作方法
创建用户

可以使用以下代码来创建一个名为“user1”的用户:

use mydatabase
db.createUser(
 {
   user: "user1",
   pwd: "password1",
   roles: [ { role: "readWrite", db: "mydatabase" } ]
 }
)
查看角色

使用以下代码可以查看当前数据库和集合的所有角色:

db.getRoles({showBuiltinRoles: true})
分配角色

可以使用以下代码来分配数据库或集合上的角色:

use mydatabase
db.grantRolesToUser(
   "user1",
   [ "read" ],
   [ { db: "mydatabase", collection: "mycollection" } ]
)
收回角色

可以使用以下代码来从用户中删除一个或多个角色:

db.revokeRolesFromUser(
   "user1",
   [ "read" ],
   [ { db: "mydatabase", collection: "mycollection" } ]
)
删除用户

可以使用以下代码来删除一个用户:

db.dropUser("user1")
结语

MongoDB的角色管理和权限控制非常重要,保护了数据库不受未授权访问和修改。本文介绍了MongoDB的预定义角色及其使用方法,以及创建、查看、分配和删除用户的方法。