• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回MongoDB栏目

11 - 使用 - 用户管理 - admin库

作者:

贺及楼

成为作者

更新日期:2024-10-20 18:45:22

使用 - 用户管理 - admin库

!!!要去config文件打开security才生效!!!

  1. #security:
  2. #安全性:
  3. # 开启授权认证
  4. authorization:enabled

要去config文件打开security的 authorization: enabled 才生效

关键字 role 的总结

使用进阶 角色 关键字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 允许用户读写指定数据库
  1. db.addUser("userName", "pwd123", roles[{
  2. role
  3. }])

admin用户命令

分类 命令 释义
认证 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"); 删除用户

创建前进入admin

  1. use admin

创建人员1/3“超级管理员”

  1. db.createUser({user:"myroot",pwd:"123456",roles:['root']})

创建人员2/3“用户管理员”

  1. db.createUser({user:"myadmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
  2. role看上面的role
  3. db指的是对应的数据库,这里是admin用户库

创建人员3/3“普通用户”

  1. db.createUser({user:"chuchu",pwd:"123456",roles:[{role:"readWrite",db:"你的数据库名"}]})
  2. role看上面的role
  3. db指的是对应的数据库,这里是你的数据库名

查看创建后的效果

使用show users;命令,可以看到创建后的效果
创建后的效果
可以看见最重要的信息:1:user用户名。2:roles是一个列表,指定对db_doc的readWrite读写功能。

还可以用账号密码登陆MongoDB Compass:

  1. mongodb://chuchu:123456@localhost:27017/

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