
#security:#安全性:# 开启授权认证authorization:enabled
要去config文件打开security的 authorization: enabled 才生效
| 使用进阶 | 角色 | 关键字role | 释义 |
|---|---|---|---|
| / | 内部角色 | system | |
| 最重要 | 超级用户角色 | root | 只在admin数据库中可用。超级账号,超级权限 |
| / | 备份恢复角色 | backup | |
| / | 备份恢复角色 | restore | |
| / | 集群管理角色 | clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 |
| / | 集群管理角色 | clusterManager | |
| / | 集群管理角色 | clusterMonitor | |
| / | 集群管理角色 | hostManager | |
| / | 数据库管理角色 | dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
| / | 数据库管理角色 | dbOwner | |
| / | 数据库管理角色 | userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
| / | 所有数据库用户角色 | readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
| / | 所有数据库用户角色 | readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
| / | 所有数据库用户角色 | userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
| / | 所有数据库用户角色 | dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 |
| 读写分离 | 数据库用户角色 | read | 允许用户读取指定数据库 |
| 最常用 | 数据库用户角色 | readWrite | 允许用户读写指定数据库 |
db.addUser("userName", "pwd123", roles[{role}])
| 分类 | 命令 | 释义 |
|---|---|---|
| 认证 | db.auth("userName", "123123"); |
数据库认证、安全模式 |
| 查 | show users; |
显示当前所有用户 |
| 查 | db.system.users.find() |
显示当前所有用户 |
| 增 | db.addUser("name"); |
添加用户 |
| 增 | db.addUser("userName", "pwd123", true); |
添加用户、设置密码、是否只读 |
| 增 | db.createUser({user:"elastic",pwd:"xxxxxxxxxxxx",roles:[{role:"read",db:"你的数据库名"}]}); |
添加用户、设置密码、read只读 |
| 改 | db.changeUserPassword("userName","123"); |
改密码 |
| 删 | db.removeUser("userName"); |
删除用户 |
| 删 | db.dropUser("userName"); |
删除用户 |
use admin
db.createUser({user:"myroot",pwd:"123456",roles:['root']})
db.createUser({user:"myadmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})role看上面的role表db指的是对应的数据库,这里是admin用户库
db.createUser({user:"chuchu",pwd:"123456",roles:[{role:"readWrite",db:"你的数据库名"}]})role看上面的role表db指的是对应的数据库,这里是你的数据库名
使用show users;命令,可以看到创建后的效果
可以看见最重要的信息:1:user用户名。2:roles是一个列表,指定对db_doc的readWrite读写功能。
还可以用账号密码登陆MongoDB Compass:
mongodb://chuchu:123456@localhost:27017/

登陆后只可以看见设置的数据库名,其他数据库admin、config、local都不可以看见