(1) Add User and Role

1. 首先使用admin账户登录,并使用admin来创建我们需要的User。

2. 使用下面命令来创建User and Role。

Example 1:

db.createUser({
  "user": "test_user",
  "pwd": "test_user",
  "roles": [
    {
      "role": "read",
      "db": "testdb1"
    },
    {
      "role": "readWrite",
      "db": "db1"
    },
    {
      "role": "read",
      "db": "db2"
    },
    {
      "role": "readWrite",
      "db": "testdb2"
    }
  ],
  "mechanisms": [
    "SCRAM-SHA-1"
  ]
})

Example 2:

db.dropUser("test_user")

Example 3:

db.createUser({
  "user": "test_user",
  "pwd": "test_user",
  "roles": [
    "readWriteAnyDatabase"
  ],
  "mechanisms": [
    "SCRAM-SHA-1"
  ]
})

3. 关于Role, 我们可以设置以下角色。

(1) 数据库用户角色

  read: 只读数据权限

  readWrite: 读写数据权限

(2) 数据库管理角色

  dbAdmin: 在当前db中执行管理操作的权限

  dbOwner: 在当前db中执行任意操作

  userADmin: 在当前db中管理user的权限

(3) 备份和还原角色

  backup

  restore

(4) 跨数据库角色

  readAnyDatabase: 在所有数据库上都有读取数据的权限

  readWriteAnyDatabase: 在所有数据库上都有读写数据的权限

  userAdminAnyDatabase: 在所有数据库上都有管理user的权限

  dbAdminAnyDatabase: 管理所有数据库的权限

(5) 集群管理

  clusterAdmin: 管理机器的最高权限

  clusterManager: 管理和监控集群的权限

  clusterMonitor: 监控集群的权限

  hostManager: 管理Server

(6) 超级权限

  root: 超级用户

参考:

https://www.jianshu.com/p/62736bff7e2e

https://docs.mongodb.com/manual/security/

猜你喜欢

转载自www.cnblogs.com/storml/p/12565124.html
今日推荐