码迷,mamicode.com
首页 > 其他好文 > 详细

mongo的身份验证和授权

时间:2018-09-19 19:45:41      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:最小   use   验证   dwr   back   image   tle   min   http   

问题来源

技术分享图片

刚装好的mongo,准备登陆进去测一把的,结果就给我报这个错,鄙人是新手,还不太清楚这个,现学一下~

Mongo的身份验证

在上一篇安装mongo的博客中(https://www.cnblogs.com/tuhooo/p/9673685.html),提供了一个简单的配置文件,其中有个选项是

auth=true

这里的意思是开启身份验证,有用户,密码,角色,权限之类的东西,如果把auth设为false的话,那么mongo就相当于裸奔了,谁都可以连进来。如果服务器安全性挺高的,裸奔倒也不是问题。但是现在的版本还是推荐把这个auth给打开。

认证、授权和用户

身份认证:验证用户的身份,你是谁

授权:判定用户在通过了身份验证的数据库上可以进行那些操作,比如读,写,只读,只写等

auth=true会禁止对数据库的匿名访问。

Mongo中用户的信息在system.users集合中,改集合存在于管理数据库中(我这里的是admin),它存储了用户id,密码和创建该集合所面向的数据库以及对用户授权的权限。

技术分享图片

在打印的用户信息的第一行中,"user" : "tuhooo", "db" : "admin",表示了tuhooo这个用户及其关联的数据库"admin",它们两个唯一标识了Mongo中的一个用户。如果两个用户具有相同名称,但是关联到了不同的数据库,那么它们被认为是两个不同的用户。

在用户信息的倒数第二行:"roles" : [ { "role" : "read", "db" : "admin" }, { "role" : "userAdminAnyDatabase", "db" : "admin" } ]表明了tuhooo在这个用户可以有不同数据库的不同权限(这里只有一个库,因为我还没来得及建测试库)。如果两个用户具有相同的名称但是关联到了不同的数据库,那么它们被认为是两个不同的用户。

小结:

用户名和关联的数据库唯一标识了Mongo中的一个用户。

一个用户可以在不同数据库中具有不同授权级别的多个角色。

技术分享图片

Mongo中的角色

Mongo中可用的角色有以下:

read

readWrite

dbAm

ensureIndex、dropIndex、reIndex、indexStats

userAdmin

clusterAdmin

readAnyDatabase

readWriteAndDatabase

userAdminAnyDatabase

dbAdminAnyDatabase

其他角色

从2.6版本开始,一个用户管理员还可以通过提供集合级别以及命令级别的访问权限来创建遵循最小权限策略的用户定义的角色。用户定义的角色仅作用于创建它的数据库中,并且被数据库


待续~有点事情~

mongo的身份验证和授权

标签:最小   use   验证   dwr   back   image   tle   min   http   

原文地址:https://www.cnblogs.com/tuhooo/p/9675903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!