- 用户名和密码的创建
mongodb默认是没有鉴权的设置的,开启鉴权其实很简单(注:设置好鉴权再用该模式)。启动数据库的时候后面加上 --auth
$ mongod --auth
mongodb鉴权有两个地方要设置用户名:
1.一种是管理员,用来管理用户
用户管理员的角色名叫 userAdminAnyDatabase,这个角色只能在 admin 数据库中创建
> use admin
switched to db admin
> db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
这个例子创建了一个名为 root 的用户管理员。创建完了这个用户之后,我们应该马上以该用户的身份登录:
> db.auth("root","root123")
1
db.auth() 方法返回 1 表示登录成功。接下来我们为指定的数据库创建访问所需的账号。
2.一种是普通用户,用来访问数据
普通的数据库用户角色有两种,read 和 readWrite。顾名思义,前者只能读取数据不能修改,后者可以读取和修改。
> use test
switched to db test
> db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] }
> db.auth("testuser","testpass")
1
以上是mongodb鉴权做的小结
- nodejs链接mongodb
this.mongooseInstance = Mongoose.connect("mongodb://localhost:27017/quickStart",{user: 'testuser', pass: 'testpass'});
- mongodb compass链接数据库
参考:http://www.cnblogs.com/itxiongwei/p/5520863.html