这篇文章的前提是,已经安装完成了MongoDB数据库,如果还没有,可参看 在Centos7中通过yum安装MongoDB
一、添加管理员账号密码
打开MongoDB的客户端,我使用的IP和端口是默认的,你应该改为你们自己设置的
mongo 127.0.0.1:27017
在数据库客户端中进行操作( admin库为系统库 )
> use admin
switched to db admin
> db.createUser({user: "admin",pwd: "admin",roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]})
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "readWriteAnyDatabase",
"db" : "admin"
}
]
}
解释说明
- ser:用户名
- pwd:密码
- roles:指定用户的角色,可以用一个空数组给新用户设定空角色;在roles字段,可以指定内置角色和用户定义的角色。
role里的角色可以选:
类别 | 身份(role) |
---|---|
数据库用户角色 | read 、readWrite |
数据库管理角色 | dbAdmin 、dbOwner 、userAdmin |
集群管理角色 | clusterAdmin 、clusterManager 、clusterMonitor 、hostManager |
备份恢复角色 | backup 、restore |
所有数据库角色 | readAnyDatabase 、readWriteAnyDatabase 、userAdminAnyDatabase 、dbAdminAnyDatabase |
超级用户角色 | root |
内部角色 | __system |
具体访问角色:
角色 | 说明 |
---|---|
Read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
userAdmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
clusterAdmin | 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 |
readAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读权限 |
readWriteAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的读写权限 |
userAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 |
dbAdminAnyDatabase | 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 |
root | 只在admin数据库中可用。超级账号,超级权限 |
二、添加数据库用户
进入test数据库(如果不存在,默认创建)
> use test
switched to db test
创建读写权限用户
> db.createUser({user: "rwuser",pwd: "rwuser",roles: [ { role: "readWrite", db: "test" } ]})
Successfully added user: {
"user" : "rwuser",
"roles" : [
{
"role" : "readWrite",
"db" : "test"
}
]
}
退出客户端
> exit
三、结束MongoDB进程
找到进程,然后kill掉进程
# ps -e | grep mongod
2193 ? 00:06:02 mongod
# kill -9 2193
四、带认证模式开启Mongod
带认证模式开启Mongod
mongod --auth --config /etc/mongod.conf
加入开机自启动
echo "mongod --auth --config /etc/mongod.conf" >> /etc/rc.local
五、带账号密码链接MongoDB
打开数据库客户端
mongo 127.0.0.1:27017
进入数据库
> use admin
switched to db admin
用户登录
> db.auth("账号","密码")
1
六、Mongo可视化工具 - (Robo 3T)
我选择了社区版
青冥有晓月