项目需要,用到了nosql数据库,MongoDB更是第一次使用,之间遇到不少问题也参阅了很多资料,整理一下以供自己复习。
首先是MongoDB的安装,此文讲的很详细Windows环境下MongoDB的安装配置,加为服务后可以自己写两个批处理文件用来开启和关闭MongoDB的服务,用起来会很方便。
MongoDB默认是不开启验证的,不用登录就可以对所有的集合、文件、用户进行操作。
在开启验证之前一定要先创建一个用户管理账户:
use admin
db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
这里说明一下,有些博客里用到的addUser()方法以于3.0版本之后过时,更改为createUser()方法。
MongoDB默认已有admin、local两个数据库,其中admin中system.users下存放的是所有已有的的用户.
接下来在mongodb.config文件里加上auth=true就可以开启验证,然后试着登录(修改配置文件后需重启服务)
use admin
db.auth("admin","admin")
如果命令行输出1,就代表登录成功了
然后创建自己的数据库并创建用户
use test
db.createUser(
{
user: "mongodb",
pwd: "mongodb",
roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]
}
)
role属性决定了创建的用户角色,下面列出所有用户角色
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
- // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
- 内部角色:__system
我们创建的这个用户拥有除了admin和local数据库外所有数据库的读写能力,一般来说已经够用了。下面贴上idea中插件Mongo Explorer的配置:
点击TestConnection测试,成功即可。