言简意赅,步骤如下:
- 连接mongo
mongo - 进入admin数据库
use admin - 创建管理员账户
db.createUser({ user: "adminName", pwd: "adminPassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 顾名思义即超级管理员,后续可以在命令行通过类似mysql连接数据库的方式访问到数据库的所有内容,操作如下:
mongo -u root -p 然后输入密码:adminPassword - 验证第3步用户添加是否成功
db.auth("adminName", "adminPassword")
# 如果返回1,则表示成功。db.auth()
方法理解为 用户的验证功能exit #
退出系统 - 修改配置
sudo vim /etc/mongod.conf
找到#security:
取消注释,修改为:security:
authorization: enabled #!!!注意首行空两个,缩进错误将会导致第6步重启失败
重启mongodb
sudo service mongod restart
- 进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号
use admin
db.auth("adminName", "adminPassword")
新建你需要管理的mongodb 数据的账号密码。
use yourDatabase
db.createUser({ user: "yourUser", pwd: "yourPassword", roles: [{ role: "dbOwner", db:"yourDatabase" }] })
# dbOwner 代表数据库所有者角色,拥有最高该数据库最高权限。比如新建索引等- 新建数据库读写账户
use yourdatabase
db.createUser({ user: "yourUser2", pwd: "yourPassword2", roles: [{ role: "readWrite",db: "yourDatabase" }] })
# 该用户用于该数据的读写,只拥有读写权限。 - 现在数据的用户名和密码就建好了。
使用:mongodb://yourUser2:yourPassword2@localhost/yourDatabase
来链接
- 连接mongo