(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: 超级用户
参考: