一、缘由
今天公司测试股票交易系统,需要拉取大量的数据存放,故考虑放在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操作