MongoDB安全认证之单机安全认证实现
通过上篇MongoDB安全认证之用户、角色相关操作 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)对MongoDB的用户角色有了初步的了解,本文就其在单机安全认证中的应用进行实践。
业务场景:
对test数据库进行用户权限限制:用户 Luther拥有读写权限,用户Shirley 拥有只读权限测试这两个账户的权限。同时以超级管理员登录测试权限。
当前系统中对MongoDB的访问没有任何限制:
实现业务流程如下:参考Use SCRAM to Authenticate Clients — MongoDB Manual
1、创建三个用户——超级用户一个,两个数据库用户
超级用户lifish:
数据库读写用户Luther:
数据库只读用户Shirley:
注意:建立哪个数据库的用户似乎就得进入哪个数据库,否则db.auth无效(至少验证的时候如此)。比如在test下创建Luther用户就得use test,而不能使用admin;虽然admin下也可以创建成功但是db.auth提示不成功。
2、从客户端关闭 MongoDB 服务端
3、MongoDB 安全认证⽅式启动
mongod --dbpath=数据库路径 --port=端⼝ --auth 或者 在配置⽂件进行配置,如下:
关于配置文件与命令行参数之间的映射关系可参考Configuration File Settings and Command-Line Options Mapping — MongoDB Manual。
启动后无用户登录,无法查看任何信息,如下:
4、Luther可读可写用户登录
5、Shirley只读用户登录
没有写的权限,如下图示:
但是具有查询的权限:
6、lifish超级用户登录
超级用户对非admin数据集具有可读可写等权限。