
1、添加超级管理员用户
1)切换到admin数据库
>use admin
2)添加管理员用户
>db.addUser("admin","admin")
添加了一个叫admin的用户,密码是admin。拥有对任意数据库的所有权限
3)查看已添加的用户
>db.system.users.find()
{ "_id" : ObjectId("528c24eb30c8aafadfc15f60"), "user" : "admin", "readOnly" : false, "pwd" : "7c67ef13bbd4cae106d959320af3f704" }
2、添加普通用户
1)切换到普通数据库mydb
>use mydb
2)添加一个用户,只给予读权限
db.addUser(
{
user:"lihuai",
pwd:"",
roles:["read"]
}
)
3)添加一个用户,作为mydb数据库的管理员
db.addUser("heyman","123456")
4)以认证方式启动mongodb
[mongodb@localhost bin]$ ./mongod --dbpath=/home/mongodb/data --logpath=/home/mongodb/logs/mongodb.log --auth --fork
5)以用户lihuai登录mydb
[mongodb@localhost bin]$ ./mongo 127.0.0.1:27017/mydb -ulihuai -p123456
发现可以查询,但是写入的时候会提示
> db.users.insert({name:"zhangsan",age:30})
not authorized for insert on mydb.users
>
6)以管理员heyman登录mydb,可以对mydb数据库进行读写操作,但不能对其他数据库进行任何操作
7)超级管理员admin需登录到admin数据库后,再切换到其他数据库进行任何操作
[mongodb@localhost bin]$ ./mongo 127.0.0.1:27017/admin -uadmin -padmin
MongoDB shell version: 2.4.8
connecting to: 127.0.0.1:27017/admin
> use mydb
switched to db mydb
>
虽然是超级管理员,但是admin不能直接登录其他数据库
[mongodb@localhost bin]$ ./mongo 127.0.0.1:27017/mydb -uadmin -padmin
MongoDB shell version: 2.4.8
connecting to: 127.0.0.1:27017/mydb
Wed Nov 20 11:22:26.916 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228
exception: login failed
[mongodb@localhost bin]$