此文档以mongodb 4.0版本进行对用户权限和角色讲解,更详细内容可参考mongodb官方文档.

官方文档:https://docs.mongodb.com/manual/core/security-users/

一.mongodb内部角色

1.数据库用户角色

read      --读取数据库对像的权限

readWrite   --读取和修改数据库对像权限

2.数据库管理角色

dbAdmin   --执行管理任务角色

dbOwner   --数据库所有者,可以对数据库所有操作

userAdmin   --当前数据库上创建,修改角色和用户功能

3.集群管理角色

clusterAdmin          --集群管理员

clusterManager      --管理集群和监控

clusterMonitor       --监控集群和只读访问

hostManager         --监控和管理服务器功能

4.备份恢复角色

backup    --备份数据最小权限

restore    --恢复权限

5.所有数据库角色

readAnyDatabase   --只读所有数据库角色

readWriteAnyDatabase     --读写所有数据库

userAdminAnyDatabase   --除local之外的所有数据库相同的用户管理操作访问权限

dbAdminAnyDatabase      --除local之外的所有数据库相同的权限

6.超级用户角色

root         --提供所有资源readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin,restore,backup

7.内部角色

__system       --提供对数据库中的任何对象执行任何操作的权限

二.自定义角色

1.自定义角色格式

{

role: "",

privileges: [

{ resource: {  }, actions: [ "", ... ] },

...

],

roles: [

{ role: "", db: "" } | "",

...

],

authenticationRestrictions: [

{

clientSource: ["" | "", ...],

serverAddress: ["" | "", ...]

},

...

]

}

2.自定义角色(对config库所有表可以增删改查,对users库usersCollection表更新,插入,删除,对所有数据库有查找权限)

> use admin

switched to db admin

> db.createRole(

{

role: "wuhan123",       --角色名

privileges: [

{ resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },

{ resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },

{ resource: { db: "", collection: "" }, actions: [ "find" ] }

],

roles: [

{ role: "read", db: "admin" }

]

}

)

>

3.列出角色和删除角色

> db.getRole("wuhan123")   --显示单个角色信息(wuhan123是角色名)

{

"role" : "wuhan123",

"db" : "admin",

"isBuiltin" : false,

"roles" : [

{

"role" : "read",

"db" : "admin"

}

],

"inheritedRoles" : [

{

"role" : "read",

"db" : "admin"

}

]

}

> db.getRoles()     --显示当前库所有角色

[

{

"role" : "wuhan123",

"db" : "admin",

"isBuiltin" : false,

"roles" : [

{

"role" : "read",

"db" : "admin"

}

],

"inheritedRoles" : [

{

"role" : "read",

"db" : "admin"

}

]

}

]

> db.dropRole("wuhan123");     --删除角色

true

> db.dropAllRoles();       --删除所有角色

NumberLong(1)

>

三.创建用户并使用角色

1.创建用户格式

{

user: "",

pwd: "",

customData: {  },

roles: [

{ role: "", db: "" } | "",

...

],

authenticationRestrictions: [

{

clientSource: ["" | "", ...]

serverAddress: ["" | "", ...]

},

...

],

mechanisms: [ "", ... ],

passwordDigestor: ""

}

2.创建用户使用角色

> use tong     --进入数据库

switched to db tong

> db.createUser(

...    {

...      user: "u_tong",       --指定用户名

...      pwd: "system123",     --指定密码

...      roles: [ "readWrite", "dbAdmin" ]     --使用数据库中的角色

...    }

... )

Successfully added user: { "user" : "u_tong", "roles" : [ "readWrite", "dbAdmin" ] }

>

2.创建用户指定来源IP和目标IP

> use tong

switched to db tong

> db.createUser(

{

user: "u1_tong",    --用户名

pwd: "system123",   --密码

roles: [ { role: "readWrite", db: "tong" } ],   --角色

authenticationRestrictions: [ {

clientSource: ["192.168.1.10"],    --客户端IP

serverAddress: ["192.168.1.20"]    --服务端IP

} ]

}

)>

3.查看用户和删除用户

> db.getUsers();      --查看当前数据库所有用户

[

{

"_id" : "tong.u1_tong",

"user" : "u1_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

},

{

"_id" : "tong.u_tong",

"user" : "u_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

},

{

"role" : "dbAdmin",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

}

]

> db.getUser("u_tong");     --查看指定用户

{

"_id" : "tong.u_tong",

"user" : "u_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

},

{

"role" : "dbAdmin",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

}

> db.dropUser("u_tong");    --删除单个用户

true

> db.dropAllUsers();        --删除当前库所有用户

NumberLong(1)

>

4.将角色授权给用户

> db.grantRolesToUser(

"u_tong",[ "readWrite" , { role: "read", db: "tong" } ],

> )

mongodb创建local库用户_mongodb用户与角色使用相关推荐

  1. mongodb创建local库用户_mongodb用户创建与授权

    ## 1.用户授权 ## (1) 在非--auth模式下启动 /mongodb/bin/mongod --dbpath=/data/mongodb --logpath=/mongodb/logs/mo ...

  2. mongodb创建用户名和密码_mongodb用studio3T进行数据备份和用户的创建

    首先,如果用yum安装mongodb数据库的话,后期是无法使用自带mongodump工具进行导入导出的,另外MongoDB Compass工具无法整个库导出,很不方便,这里就会用到一个mongodb很 ...

  3. python连接mongodb数据库、创建用户_mongodb对数据库创建用户名和密码

    MongoDB 有一个用户管理机制,简单描述为管理用户组,这个组的用户是专门为管理普通用户而设的,暂且称之为管理员.管理员通常没有数据库的读写权限,只有操作用户的权限,我们只需要赋予管理员 userA ...

  4. mongodb创建普通用户并授权readWrite角色,并允许访问某一数据库

    MongoDB 数据库默认角色 数据库用户角色:read.readWrite 数据库管理角色:dbAdmin.dbOwner.userAdmin 集群管理角色:clusterAdmin.cluster ...

  5. mongodb 创建只读用户

    关闭mongo #先找到mongo的进程 ps -ef | grep mongo kill -9 {pid} 先停止mongodb的进程 修改配置文件mongo.conf dbpath=/opt/su ...

  6. MongoDB创建用户用户权限

    创建用户 启动mongo 切换到admin库 创建admin - 可以对所有数据库进行管理 > db.createUser({user: "admin", pwd:" ...

  7. Mongodb创建用户角色

    文章目录 一.Mongodb数据库用户角色? 二.创建用户,其权限有哪些 1.创建用户语法格式 2.字段解析 三.创建用户实列 总结 一.Mongodb数据库用户角色? MongoDB采用基于角色的访 ...

  8. MongoDB新建数据库、集合以及用户创建和权限设置

    有段时间没用MongoDB了,最近因为业务需要开始使用MongoDB.这里就简单总结一下常用命令. 1.连接及查看所有数据库 mongo 主机ip:端口号/连接的数据库名 -u 用户名 -p 密码 / ...

  9. bartender的安全策略不允许指定的用户执行此操作_MongoDB用户和角色解释系列(上)...

    1.介绍 本文讨论保护MongoDB数据库所需的访问控制.具体来说,我们可以使用这些特性来确保只有经过授权的用户才能访问数据库.每个MongoDB用户应该只能访问他们在组织中所扮演的角色所需要的数据, ...

最新文章

  1. Qt与OpenCV编程:在子线程打开摄像头用主线程显示
  2. ML之FE:数据处理—特征工程之稀疏特征的简介、如何处理、案例应用之详细攻略
  3. python逻辑题_这道逻辑题 用 Python 代码 如何实现?
  4. DWR的学习文档(Hello World,类型转换,Spring,Annotation)
  5. windows+caffe(三)——求取图片的均值
  6. UVA-11536 Smallest Sub-Array
  7. 前端学习(679):switch语句
  8. jq执行2次同样的方法怎么让第一次执行的不触发_你不知道的CMS GC
  9. Python编程基础15:异常
  10. 模型保存的方法-----仅保存权重
  11. The path ‘E:\ZERO‘ does not belong to a directory.
  12. 【转】如何使用瑞萨E10A调试SH系列不带片内FLASH的单片机
  13. Ectouch修改虚拟销售数量的方法
  14. java计算机毕业设计售楼系统源码+mysql数据库+系统+lw文档+部署
  15. 原win7系统迁移到SSD固态硬盘
  16. 汉语拼音声母、韵母表
  17. 开放平台API接口加密,签名策略
  18. Java中关于length和length()的问题小结
  19. 振动力学篇一:基本概念
  20. Erlang之父Joe Armstrong确认出席SDCC 2016中国软件开发者大会,并发表主题演讲

热门文章

  1. android最新设计规范,Android应用未来的设计规范
  2. 谷歌浏览器怎么设置字体 chrome默认字体设置方法
  3. 用IDEA debug按键功能
  4. Java JDBC篇4——数据库连接池
  5. 解决springBoot 的templates中html引入css文件失败
  6. 输出有样式的php,PHP导出带样式的Excel
  7. 如何从一张图片里取出其中一部分_如何鉴别坑人的锌合金龙头
  8. php可以支持代码重用技术的命令,Linux下的编程 PHP高级技巧全放送(一)
  9. linux必备工具,Linux装机必备工具
  10. android 动态广告图片,android – 如何在动态壁纸的设置屏幕中添加一个admob广告视图?...