一、简介
1.mongdb中有一个admin的数据库,牵涉到服务器配置层面的操作,需先切换到admin数据库,
即use admin 进入超级用户管理模式。
2.mongo的用户是以数据库为单位来建立的,每个数据库有自己的管理员。
3.在设置用户时,需先在admin数据库下建立管理员,这个管理员登陆后,相等于超级管理员。
二、常用操作
1.切换到超级管理模式
use admin
2.创建超级管理员
db.createUser({user:'chenfenli', pwd:'123456', roles:['userAdminAnyDatabase']});
role类型:
readAnyDatabase 任何数据库的只读权限(和read相似)
readWriteAnyDatabase 任何数据库的读写权限(和readWrite相似)
userAdminAnyDatabase 任何数据库用户的管理权限(和userAdmin相似)
dbAdminAnyDatabase 任何数据库的管理权限(dbAdmin相似)
注意:添加用户后,再次退出并登录,发现依然可以直接读数据库?
原因:mongodb服务器启动时,默认不需要认证的
解决:重启服务器,启动服务器时指定 --auth
3.创建用户
1) 进入超级管理员模式并验证:
use admin
db.auth('用户名','密码')
2)查看数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
shop 0.000GB
>
3) 进入到shop数据库
use shop
4) 查看shop对应的用户
> show users
{
"_id" : "shop.xiaocheng2",
"user" : "xiaocheng2",
"db" : "shop",
"roles" : [
{
"role" : "readWrite",
"db" : "shop"
}
]
}
>
5)创建用户
db.createUser({user:'xiaocheng3',pwd:'123456',roles:[{role:'readWrite',db:'shop'}]})
Successfully added user: {
"user" : "xiaocheng3",
"roles" : [
{
"role" : "readWrite",
"db" : "shop"
}
]
}
6)登录
db.auth('xiaocheng2','123456')
> db.auth('xiaocheng2','123456')
1
1表示登录成功
7)查询
show collections
> show collections
test
---------------------