mongodb之内置角色与用户管理

mongodb内置角色:


图片.png

用户属于何种角色,可以理解为用户拥有何种权限?
在创建用户时,是需要绑定到角色。

角色表中,普通数据库,admin数据库:可以理解为针对某一普通数据库设置用户权限,而设置在admin数据库当中的用户角色,是针对的所有数据库而言。
举个例子:
创建一个用户,对hello这个数据拥有all权限(也就是角色表中的dbowner),并且可以对所有数据拥有只读权限(也就是权限表中的readAnyDatabase)。


错误.png

普通数据库,意味着在设置用户角色时,db关键字只能是其他创建的数据库
admin数据库,意味着在设置用户角色时,db关键字只能是admin数据库
测试权限:
h1用户只能以admin数据登录,对所有数据库操作权限是readAnyDatabase,对hello数据操作权限是dbOwner
h1用户不能以hello数据库登录,报错,认证失败
查看设置的权限:


图片.png

h1解释如上
h2用户只能以hello数据库登录,对hello数据库拥有所有的权限,
h3用户只能以admin数据库登录,对hello数据库拥有所有的权限,但是需要创建添加一次,不会干扰到数据。
h3用户创建指令.png

总结:
1、创建Mongodb数据的的用户,全部都是保存在admin数据库,system.user中。
2、admin数据库的角色权限,是针对所有数据库的,建议是在admin数据库状态下创建。
3、普通数据库的角色权限,是针对某一个数据库的,某数据库状态下创建。
4、在哪个数据库状态下创建,此用户连接时就连哪个数据库即可。
需要注意:
在普通数据库状态下创建admin数据库角色权限,db选择是admin,需要此用户是否有admin库的角色权限,才能创建。
cli命令行登录数据库:

# 第一次指定登录数据库,
mongo --port 27017 -u myadmin -p 'admin' --authenticationDatabase 'admin'
# 连接上数据库之后
use admin
db.auth(username,passwd)
# 之后就可以
mongo --host 192.168.2.176
db.auth
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • Built-In Roles(内置角色): 1. 数据库用户角色:read、readWrite; 2. 数据库管理...
    阿杰Alex阅读 1,458评论 0 1
  • http://www.cnblogs.com/zhoujinyi/p/4610050.html 创建用户,用户是跟...
    bbmm阅读 1,163评论 0 0
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,217评论 22 257
  • 当季节的步子,从容地来到六月。 敦煌的花朵,已经开放的如火如荼。 天清气爽,微风荡漾。 每年的敦煌,从四月开始,如...
    花雨凤飞H阅读 348评论 14 17