本文主要是MongoDB4.X的操作

一、MongoDB用户创建

 

MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。
MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。
1.创建管理员用户
要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户。

rs0:PRIMARY> db.createUser(
... {
... user:"test",
... pwd:"123456",
... roles:[{role:"root",db:"admin"}]
... }
... )
Successfully added user: {
"user" : "test",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

查看全部用户用db.getUsers();

2.添加并验证用户

use admin

db.addUser(“abc”,”123456”)

db.auth(“abc”,”123456”)

3.查看已存在的用户

db.system.users.find()

db.getUsers();

4.查看用户信息

> use admin

> db.getUser("用户名", { showPrivileges: true })

> db.getSiblingDB("admin").runCommand(

  {

    usersInfo: "root",

     showPrivileges: true

     }

)

5.添加数据库用户
创建指定数据库的用户,该用户只能访问该数据库。也可以为此数据库上的用户指定访问级别。 例如,创建一个在data数据库上具有读写访问权限的用户帐户。

> use data

> db.createUser( { user: "user01", pwd: "123456", roles: ["readWrite"] } )

db.getSiblingDB("admin").runCommand( { createUser: "user02", pwd: "123456", customData: { info: "user for user02" }, roles: ["readWrite"] } )

身份验证使用db.auth('用户名','密码');

 Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system

具体角色
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
 
 
6.添加多数据库用户

db.createUser(
{
user: "fyerp",
pwd: "test.123",
roles:
[{ role: "readWrite", db: "item" },{ role: "readWrite", db: "local" },{ role: "readWrite", db: "logdb" }]
}
)

7.为用户添加角色

用户user02添加admin数据库的readWrite角色

> use admin

> db.grantRolesToUser( "user02", [ { role: "readWrite", db: "admin" }, { role: "user02", db: "admin" } ] )

> use admin

> db.runCommand( { grantRolesToUser: "user02", roles: [ { role: "readWrite", db: "admin" }, { role: "user02", db: "admin" } ] } )

8.更新用户信息

更新用户user02具有admin数据库readWrite角色为read角色。

> use admin

> db.updateUser( "user02", { customData: { info: "user for user02" }, roles: [ { role: "user02", db: "admin" }, { role: "read", db: "admin" } ] } )

> use admin

> db.runCommand( { updateUser: "user02", customData: { info: "user for user02" }, roles: [ { role: "user02", db: "admin" }, { role: "read", db: "admin" } ] } )

9.为用户回收角色

> use admin

> db.revokeRolesFromUser( "dbabd_user", [ { role: "read", db: "admin" } ] )

> use admin

> db.runCommand( { revokeRolesFromUser: "dbabd_user", roles: [ { role: "read", db: "admin" } ] } )

10.更改用户密码

更改用户dbabd_user密码为dbabdnew。

> use admin

> db.changeUserPassword("dbabd_user", "dbabdnew")

11.删除用户

删除用户dbabd_user

> use admin

> db.dropUser("dbabd_user")

> use admin

> db.runCommand({ dropUser: "user02" })

关于更多用户管理操作信息可以参考官方文档说明:

https://docs.mongodb.com/manual/reference/method/js-user-management/

最新文章

  1. Web应用安全之文件上传漏洞详解
  2. shiro学习中报错解决方法
  3. echart------属性详细介绍
  4. chrome start.js报错
  5. 在linux上安装psycopg2出错--Error: pg_config executable not found.
  6. 数组包含字典-根据key排序
  7. android的m、mm、mmm编译命令
  8. js动态显示可输入字数并提示还可以输入的字数
  9. ☀【组件】加载 load
  10. Use excel Macro export data from database
  11. php时间选择器亲测可以自己修改
  12. MapReduce工作机制
  13. RedHat6.5网卡问题总结
  14. hrbustoj 1985(进制转换函数)
  15. 转 Encoding is Not Encryption 编码和加密的区别
  16. SICP-1.4-函数设计
  17. [SDOI2011]染色 线段树+树链剖分
  18. php写一个简洁的登录页面
  19. ArcCore重构-头文件引用问题的初步解决
  20. python查询修改配置文件功能

热门文章

  1. Vue 项目中实现的微信、微博、QQ空间分享功能(亲测有效)
  2. 001.shell-每日练习一文件创建
  3. 错误:/etc/sudoers: syntax error near line
  4. BS4&xpath的使用
  5. Docker 安全加固
  6. PCB走线宽度与电流、温度的关系
  7. nginx通过参数代理到其他站点
  8. web执行shell脚本
  9. C++ Gui Qt4 第二章
  10. vue+vant打包,vue+vant-ui小程序,微信支付