前言:
随着列式存储理念的成熟,越来越多的开发者开始接纳mongodb,hbase这类大储存的分布式列式数据库。特别是mongodb的这种快速搭建,快速使用特点,使其得到更多人的青睐。本人主要通过官网说明针对mongodb权限配置做一个测试与实践。
step1:无验证启动mongod服务
mongod --port 27017 --dbpath /data/db1
step2:客户端mongo无密码连接并设置超级用户(用于admin登录)
mongo --port 27017
use admindb.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
step3:有验证启动mongod服务
mongod --auth --port 27017 --dbpath /data/db1
step4:管理员mongo登录后新增用户,分配权限
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
use testdb.createUser( { user: "myTester", pwd: "xyz123", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "reporting" } ] })
step5:授权用户登录并操作表
mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"
db.foo.insert( { x: 1, y: 1 } )
注:无权限访问时,将报如下错误
参考:
https://docs.mongodb.com/v3.2/tutorial/enable-authentication/
后语:
以上仅供对mongodb进行简单管理,不至于被外界直接用端口进行连接。但更系统的权限管理还请参考官网说明
https://docs.mongodb.com/v3.2/tutorial/manage-users-and-roles/