16.用户管理安全认证

Posted 大数据小小罗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16.用户管理安全认证相关的知识,希望对你有一定的参考价值。

1 创建用户

1.1 创建一个管理员用户

先切换到admin数据库下

> use admin
switched to db admin

然后添加一个全局的管理员用户

> db.addUser("boss","password")
 "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 

        "user" : "boss",
        "readOnly" : false,
        "pwd" : "0485d0d52bdf4d383bc2a51ee3d4595d",
        "_id" : ObjectId("5850b25a5666c62ade10dce8")

现在,boss 管理员 就可以访问所有的数据库了。

重启mongod服务

为MongoDB数据库启动脚本添加--auth参数

mongod --auth --config ****

启动数据库服务

启动客户端

切换到任意数据库

> use foobar

查看该数据库中的集合

switched to db foobar
> show collections
Wed Dec 14 11:11:27 uncaught exception: error: 
        "$err" : "unauthorized db:foobar lock type:-1 client:127.0.0.1",
        "code" : 10057

发现数据库中的数据无法查看
原因是:没有通过安全认证,是不会向外界输出数据的

因此我们先切换到admin数据库下,使用管理员用户和密码进行用户认证:

> use admin
switched to db admin
> db.auth("boss","password")
1

1.2 为 persons 数据库创建一个用户

同样的,我们可以为单个数据库创建用户
举例:

先切换到 persons 数据库下

> use persons
switched to db persons

为persons数据库添加用户 “heihei”以及密码

> db.addUser("heihei","passwordheihei")
 "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 

        "user" : "heihei",
        "readOnly" : false,
        "pwd" : "72bb62f37b11ef622dbdaf6a7edbc3de",
        "_id" : ObjectId("5850b5005666c62ade10dce9")

>

2.启用用户

2.1切换到需要认证的数据库下

  use dbName

2.2使用用户名和密码进行认证

  db.auth("名称","密码")

:在V2.0中,一旦用户通过了A数据库的用户验证,即使切换成了B数据库的用户,后面再使用A数据时,不会要求第二次认证。

3.删除用户

举例:

删除admin数据库中的用户”haha”

切换到admin数据库下:
> use admin
switched to db admin

认证成为管理员用户 boss:
> db.auth("boss","password")
1

移除用户"haha"
> db.removeUser("haha")

检查是否移除成功:
> db.system.users.find()
 "_id" : ObjectId("5850b25a5666c62ade10dce8"), "user" : "boss", "readOnly" : fa
lse, "pwd" : "0485d0d52bdf4d383bc2a51ee3d4595d" 
>

或者,更暴力的方法:直接从users集合中删除数据(在对应数据库下操作)

       db.system.users.remove(user:"USERNAME");

4.注销用户

4.1 中断连接,关闭shell即可

4.2 运行注销命令

db.runCommand(logout:1)

以上是关于16.用户管理安全认证的主要内容,如果未能解决你的问题,请参考以下文章

16-java安全——shiro1.2.4用户认证流程分析

16-java安全——shiro1.2.4用户认证流程分析

16-java安全——shiro1.2.4用户认证流程分析

Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践

Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践

第六章:Django 综合篇 - 16:Authentication