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.用户管理安全认证的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践