首页 / MONGODB / MongoDB安全及身份认证
MongoDB安全及身份认证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB安全及身份认证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3323字,纯文字阅读大概需要5分钟。
内容图文
![MongoDB安全及身份认证](/upload/InfoBanner/zyjiaocheng/487/b010497536bf404b9fefd5443cfdfd50.jpg)
2、数据库管理员角色
dbAdmin:允许用户进行索引创建、删除,查看统计或访问system.profile,但没有角色和用户管理的权限
userAdmin:提供了在当前数据库中创建和修改角色和用户的能力
dbOwner: 提供对数据库执行任何管理操作的能力。这个角色组合了readWrite、dbAdmin和userAdmin角色授予的特权。
3、集群管理角色
clusterAdmin : 提供最强大的集群管理访问。组合clusterManager、clusterMonitor和hostManager角色的能力。还提供了dropDatabase操作
clusterManager : 在集群上提供管理和监视操作。可以访问配置和本地数据库,这些数据库分别用于分片和复制
clusterMonitor : 提供对监控工具的只读访问,例如MongoDB云管理器和Ops管理器监控代理。
hostManager : 提供监视和管理服务器的能力。
4、备份恢复角色
backup : 提供备份数据所需的能力,使用MongoDB云管理器备份代理、Ops管理器备份代理或使用mongodump
restore : 提供使用mongorestore恢复数据所需的能力
5、所有数据库角色
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
6、超级用户角色
root:提供对readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、restore和backup的所有资源的访问
7、内部角色
__system : 提供对数据库中任何对象的任何操作的特权
【自定义角色】
除了使用内建的角色之外,MongoDB还支持使用db.createRole()方法来自定义角色
[注意]只能在admin数据库中创建角色,否则会失败
role: 自定义角色的名称
privileges: 权限操作
roles:继承的角色。如果没有继承的角色,可以设置为空数组
use admin db.createRole( { role: "myClusterwideAdmin", privileges: [ { resource: { cluster: true }, actions: [ "addShard" ] }, { 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" } ] }, { w: "majority" , wtimeout: 5000 } )
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103636809.jpg)
用户管理
【创建用户】
使用createUser命令来创建用户
user: 用户名 pwd: 密码
customData: 对用户名密码的说明(可选项)
roles: {role:继承自什么角色类型,db:数据库名称}
db.createUser({user: "...",pwd: "...",customDate:"...",roles:[{role: "...",db: "..."}]})
1、创建管理员用户
MongoDB没有默认管理员账号,所以要先添加管理员账号。切换到admin数据库,添加的账号才是管理员账号
在admin数据库中,添加一个用户并赋予userAdminAnyDatabase
角色
db.createUser({user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637087.jpg)
2、重新登录数据库,并验证权限
如果auth()方法返回0则代表授权失败,返回1代表授权成功
db.auth()
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637197.jpg)
3、添加普通用户
一旦经过认证的用户管理员,可以使用db.createUser()
去创建额外的用户。 可以分配mongodb内置的角色或用户自定义的角色给用户
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637320.jpg)
[注意]需要在admin数据库下进行认证,否则认证不成功
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637403.jpg)
由于该用户只有读权限,所以会写入数据失败
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637438.jpg)
4、创建超级用户
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103637588.jpg)
【查看用户】
db.system.users.find()
【删除用户】
db.dropUser()
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103638073.jpg)
【添加用户权限】
db.grantRolesToUser()
给在db1数据库中只读的x用户,添加写权限
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103638115.jpg)
【修改密码】
db.changeUserPassword()
![MongoDB安全及身份认证 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424103638162.jpg)
MongoDB安全及身份认证
标签:比较 drop ide 索引 只读 监控 重要 any read
本文系统来源:http://www.cnblogs.com/xiaohuochai/p/7207423.html
内容总结
以上是互联网集市为您收集整理的MongoDB安全及身份认证全部内容,希望文章能够帮你解决MongoDB安全及身份认证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。