一、缘由
今天公司测试股票交易系统,需要拉取大量的数据存放,故考虑放在mongodb里。
二、一些基本操作
1、权限管理
mongo默认是不用账号就能登陆的,默认端口27017,但是这不太安全。我们要启用认证登陆。
1)开启安全认证:修改mongo.conf里,security.authorization=enbaled
2)创建管理员用户和普通用户
创建管理员用户:
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
创建普通用户:
use admin db.createUser( { user: "myTester", pwd: "xyz123", roles: [ { role: "readWrite", db: "test" }, { role: "read", db: "reporting" } ] } )
注意:上述账号认证数据库(authenticationDatabase)都为admin库(也可以为其他库)。
3)重启mongodb,用mongo shell 认证方式登陆
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"
或者 登陆后,进行用户授权:
$mongo $use test $db.auth("myTester", "xyz123" )
注:mongodb 3.2官方文档:关于管理账号认证,点这里;关于配置文件详情,点这里。
4)其他账户操作:
前提是 use db;
查询用户权限:db.system.users.find();
查询用户权限2:use reporting(需有reporting库的读权限)
db.getUser("reportsUser")
删除用户:db.dropUser("user_name");
删除用户(root):db.system.users.remove({user:'user_name'});
更改用户密码:db.changeUserPassword("user_name","password");
2、CURD操作