创建
user <username>
db.createUser({user: "<user>", pwd: "<pwd>", roles: [{role: "<role>", db:"<db>"}]})
若出现异常
couldn’t add user: Use of SCRAM-SHA-256 requires undigested passwords
可通过修改加密方式解决
db.createUser({user: "<user>", pwd: "<pwd>", roles: [{role: "<role>", db:"<db>"}], mechanisms: ["SCRAM-SHA-1"]})
角色
| 类别 | 角色 |
|---|---|
| 数据库用户 | read, readWrite |
| 数据库管理 | dbAdmin, dbOwner, userAdmin |
| 集群管理 | clusterAdmin, clusterManager, clusterMonitor, hostManager |
| 备份恢复 | backup, restore |
| 所有数据库 | readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase |
| 超级用户 | root |
角色具体功能
| 角色 | 详情 |
|---|---|
| read | 读取指定数据库 |
| readWrite | 读写指定数据库 |
| backup | 数据备份, 【只可用于admin数据库】 |
| retore | 数据恢复, 【只可用于admin数据库】 |
| dbAdmin | 在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
| userAdmin | 创建、删除和管理用户 |
| clusterAdmin | 所有分片和复制集相关函数的管理权限, 【只可用于admin数据库】 |
| readAnyDatabase | 所有数据库的读权限, 【只可用于admin数据库】 |
| readWriteAnyDatabase | 所有数据库的读写权限, 【只可用于admin数据库】 |
| userAdminAnyDatabase | 所有数据库的userAdmin权限, 【只可用于admin数据库】 |
| dbAdminAnyDatabase | 所有数据库的dbAdmin权限, 【只可用于admin数据库】 |
| root | 超级账号,超级权限, 【只可用于admin数据库】 |
查询
查询所有用户信息
use admin
db.system.users.find().pretty()
查询当前用户信息
use test
show users
查询指定用户信息
db.getUser("<username>")
修改
1. 权限
db.updateUser("test", {roles: [{role: "read", db: "t"}]})
2. 密码
db.changeUserPassword("test", "321")
删除
db.dropUser("<username>")

2046

被折叠的 条评论
为什么被折叠?



