首页 Mongdb数据库教程 MongoDB内置用户、系统级用户和自定义用户区别和权限分配
pay pay
教程目录

MongoDB内置用户、系统级用户和自定义用户区别和权限分配

日期: 四月 13, 2023, 5:14 p.m.
阅读: 207
作者: Python自学网-村长

摘要: 在MongoDB中,用户用于控制数据库的访问权限。用户的创建、管理和授权可以在数据库级别和集群级别进行。在MongoDB中,用户可以是内置的、系统级的或自定义的。

在MongoDB中,用户用于控制数据库的访问权限。用户的创建、管理和授权可以在数据库级别和集群级别进行。在MongoDB中,用户可以是内置的、系统级的或自定义的。

以下是MongoDB用户的详细说明及示例:

一、内置用户

MongoDB中有一些内置的用户,这些用户用于管理MongoDB实例。这些用户包括:

  • root:具有超级用户权限,可以执行任意操作。
  • readWriteAnyDatabase:可以在所有数据库上执行读写操作。
  • readAnyDatabase:可以在所有数据库上执行只读操作。
  • dbAdminAnyDatabase:可以在所有数据库上执行数据库管理操作。

示例:使用root用户进行认证登录,并在admin数据库中创建名为user1的用户,并将readWrite角色分配给它:

use admin
db.auth("root", "rootpassword")
db.createUser({
  user: "user1",
  pwd: "password1",
  roles: [
    { role: "readWrite", db: "mydatabase" }
  ]
})

在上面的示例中,首先使用root用户进行认证登录,然后在admin数据库中创建名为user1的用户,并将readWrite角色分配给该用户。

二、系统级用户

MongoDB中的系统级用户与内置用户类似,但是它们是在数据库级别上创建的,而不是在集群级别上。系统级用户可以授予对指定数据库的特定权限。

示例:在mydatabase数据库中创建名为user1的系统级用户,并将readWrite角色分配给它:

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

在上面的示例中,将在mydatabase数据库中创建名为user1的系统级用户,并将readWrite角色分配给该用户。

三、自定义用户

在MongoDB中,可以创建自定义用户,并为它们指定特定的角色和权限。

示例:在mydatabase数据库中创建名为user1的自定义用户,并将readWrite角色分配给它:

use mydatabase
db.createRole({
  role: "customReadWrite",
  privileges: [
    { resource: { db: "mydatabase", collection: "" }, actions: [ "insert", "update", "remove", "find" ] }
  ],
  roles: []
})
db.createUser({
  user: "user1",
  pwd: "password1",
  roles: [
    { role: "customReadWrite", db: "mydatabase" }
  ]
})

在上面的示例中,首先使用createRole命令创建一个名为customReadWrite的自定义角色,并为该角色指定了在mydatabase数据库中执行insert、update、remove和find操作的权限。然后,使用createUser命令在mydatabase数据库中创建名为user1的自定义用户,并将customReadWrite角色分配给该用户。

以上是MongoDB用户的基本内容及示例说明,用户是MongoDB中非常重要的安全措施,建议在生产环境中为MongoDB实例配置至少一个具有适当权限的用户。同时,还应该注意不要将root用户的密码设置为简单密码,并使用具有最低权限的用户执行普通操作,以最大程度地提高MongoDB实例的安全性。

部分文字内容为【Python自学网】原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部