时间:2021-07-01 10:21:17 帮助过:2人阅读
 a.2 如图所示,则连接成功,我们即可在>后面进行操作。
  b 连接数据库并且切换到用户表下
    b.1 连接成功之后首先我们输入命令:show dbs,我们发现其系统中内置了一个数据库名字为local(如果大家查询出来还有一个admin数据库,那是因为你使用的是低版本的MongoDB),admin库是不存在的,需要我们自己创建。
    b.2 (use admin) 使用此命令创建一个admin数据库,权限管理就要使用admin数据库,此命令也是切换数据库的命令。
    b.3 (show collections) 切换到admin库之后,使用show collections查询,我们发现该数据库下包含了一个system.user和system.version表,我们主要来看system.user表,这张表是用来存放超级管理员的。
    b.4 (db.system.users.find())首先使用命令查询system.user表中含有数据否,输入命令:db.system.users.find(),查询发现数据库是空的,这时候我们给这个表添加一个管理员账户。
  d 添加用户并且为用户指定角色和数据库,命令如图所示:
    a.2 如图所示,则连接成功,我们即可在>后面进行操作。
  b 连接数据库并且切换到用户表下
    b.1 连接成功之后首先我们输入命令:show dbs,我们发现其系统中内置了一个数据库名字为local(如果大家查询出来还有一个admin数据库,那是因为你使用的是低版本的MongoDB),admin库是不存在的,需要我们自己创建。
    b.2 (use admin) 使用此命令创建一个admin数据库,权限管理就要使用admin数据库,此命令也是切换数据库的命令。
    b.3 (show collections) 切换到admin库之后,使用show collections查询,我们发现该数据库下包含了一个system.user和system.version表,我们主要来看system.user表,这张表是用来存放超级管理员的。
    b.4 (db.system.users.find())首先使用命令查询system.user表中含有数据否,输入命令:db.system.users.find(),查询发现数据库是空的,这时候我们给这个表添加一个管理员账户。
  d 添加用户并且为用户指定角色和数据库,命令如图所示:
    
 
  
   c 上面我们创建了两个账号之后,首先我们来验证读写账号(readwrite(可以写入当前数据库的用户信息)),
    c.1 首先我们不要切换用户,直接在kencery用户下面对logs数据库下的payment表进行插入,会提示我们插入失败,没有权限,这是因为userAdminAnyDatabase权限只是针对用户管理的,对其它的表示没有操作权限的,如下如所示:
  c 上面我们创建了两个账号之后,首先我们来验证读写账号(readwrite(可以写入当前数据库的用户信息)),
    c.1 首先我们不要切换用户,直接在kencery用户下面对logs数据库下的payment表进行插入,会提示我们插入失败,没有权限,这是因为userAdminAnyDatabase权限只是针对用户管理的,对其它的表示没有操作权限的,如下如所示:
       c.2 从上面看到提示我们权授权失败,这时候用我们创建的readwriter(读写)账号授权,然后在进行插入和查询,则发现插入以及查询均成功,如图所示:
    c.2 从上面看到提示我们权授权失败,这时候用我们创建的readwriter(读写)账号授权,然后在进行插入和查询,则发现插入以及查询均成功,如图所示:
       c.3 从上面我们看到对于读写权限验证没有问题。
  d 上面测试了读写权限,下面我们测试一下读权限(read)
    d.1 继续上面的操作,首先我们授权给read用户,然后使用read用户去插入和查询,则发现插入提示没有授权,而查询成功,则我们期望的所实现,如图所示:
    c.3 从上面我们看到对于读写权限验证没有问题。
  d 上面测试了读写权限,下面我们测试一下读权限(read)
    d.1 继续上面的操作,首先我们授权给read用户,然后使用read用户去插入和查询,则发现插入提示没有授权,而查询成功,则我们期望的所实现,如图所示:
       d.2 如上图所示,则说明授权已经完成,完全可以配置给某些用户只能去读而不能插入修改的权限。
    d.2 如上图所示,则说明授权已经完成,完全可以配置给某些用户只能去读而不能插入修改的权限。
 备注:原因是我们在admin数据库下面创建的用户,不能直接在其它库下面授权,只能在账号创建库下面授权,然后在去其他库访问。
  c 从上面得到,首先我们切换数据库到admin,然后创建用户nouse,权限角色给root,数据库对应admin,脚本在上面都已经写过,这里就不再累赘了。
  d 完成之后,我们切换授权给用nouse之后,切换到logs数据库下面进行各种操作,发现都是可以操作的,简单截图如下:
        备注:原因是我们在admin数据库下面创建的用户,不能直接在其它库下面授权,只能在账号创建库下面授权,然后在去其他库访问。
  c 从上面得到,首先我们切换数据库到admin,然后创建用户nouse,权限角色给root,数据库对应admin,脚本在上面都已经写过,这里就不再累赘了。
  d 完成之后,我们切换授权给用nouse之后,切换到logs数据库下面进行各种操作,发现都是可以操作的,简单截图如下:
     e 因为账号始终都是在当前需呀授权的数据库下面进行授权的,那要不是在当前数据库下面授权呢,意思就是,我现在切换到admin数据库下添加用户给logs数据库,创建完成之后如何操作呢?始终记下来上面所述的那句:(哪里创建哪里认证)在admin数据库下面创建的用户,不能直接在其它库下面授权,只能在账号创建库下面授权,然后在去其他库访问。
  f 从文章开始到现在我们已经创建了很多账户,那么我们可以使用下面两条命令来查询账户以及账户总数
    f.1 db.system.users.find().pretty()
    f.2 db.system.users.find().count()
    
    因本人是学习笔记,故而部分内容来源于网络,希望能学有所得
       关于权限这块现在只是简单的了解以及配置,后面如果能够研究的更深的话还会继续来说这块
  e 因为账号始终都是在当前需呀授权的数据库下面进行授权的,那要不是在当前数据库下面授权呢,意思就是,我现在切换到admin数据库下添加用户给logs数据库,创建完成之后如何操作呢?始终记下来上面所述的那句:(哪里创建哪里认证)在admin数据库下面创建的用户,不能直接在其它库下面授权,只能在账号创建库下面授权,然后在去其他库访问。
  f 从文章开始到现在我们已经创建了很多账户,那么我们可以使用下面两条命令来查询账户以及账户总数
    f.1 db.system.users.find().pretty()
    f.2 db.system.users.find().count()
    
    因本人是学习笔记,故而部分内容来源于网络,希望能学有所得
       关于权限这块现在只是简单的了解以及配置,后面如果能够研究的更深的话还会继续来说这块MongoDB学习笔记—权限管理
标签: