zoukankan      html  css  js  c++  java
  • mongodb的认证(authentication)与授权(authorization)

    一小白瞎整mongodb,认证部分被折磨的惨不忍睹,看厮可怜,特查了一下文档,浅显地总结一下mongodb认证(authentication)与授权(authorization)的联系。

    创建的所有用户都在admin.库下的system.users集合下,有如下字段:

    其中的db字段是用于authentication用的,也就是连接mongodb的时候,指定的--authenticationDatabase选项的值。

    roles字段里面的db是指这个用户具体对db具有什么样的角色,是只读,只写,还是读写,也就是授权。这个db跟最外面的db没有任何关系,完全是用来指定权限的。

    连接Mongodb的时候,除了需要用户名,密码,还需要指定这个用户的认证db。为什么需要指定这个认证db?是因为Mongodb允许存在多个同名的用户存在,但同名的用户认证db必须不能相同,如下:

    切换到其他db,可以创建同名用户:

    上图创建了一个用户名密码为"in_admin"的用户,用haha数据库认证,对haha数据库具有读写权限,除此之外,没有其他数据库的任何执行权限。

    补充一点就是,认证的db字段不能在创建用户时指定,它的值是你创建用户时所在的那个db。

  • 相关阅读:
    十个MySQL常用函数
    写给三十岁的自己
    EJS 模板引擎
    发送HTTP请求(GET,POST)
    路由模块化
    原生NodeJS封装Express路由
    Hook简介
    State Hook (useState)
    Effect hooks
    useContext
  • 原文地址:https://www.cnblogs.com/cool-fire/p/9807771.html
Copyright © 2011-2022 走看看