原文地址:https://dsx2016.com/?p=311
➢ 设置用户
建议在开启认证前创建用户,创建一个超级用户或者对应的数据库用户后,再开启认证并且重启,mongoDB
➢ 创建超级用户
进入mongo
命令行面板,进入admin
数据库
use admin
创建账户
db.createUser( { user: "userName", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
user
:用户名
pwd
:密码
role:userAdminAnyDatabase
超级权限
admin
:账户对应的数据库
➢ 查看用户
进入要查看的数据库
use admin
查看用户
show users
➢ 创建普通用户
进入数据库,比如test
use test
创建用户
db.createUser( { user: "userName", pwd: "password", roles: [ { role: "readWrite", db: "test" } ] } )
readWrite
:读写权限
➢ role
规则
Read
:允许用户读取指定数据库
readWrite
:允许用户读写指定数据库
dbAdmin
:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin
:允许用户向system.users
集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin
:只在admin
数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的userAdmin
权限
dbAdminAnyDatabase
:只在admin
数据库中可用,赋予用户所有数据库的dbAdmin
权限
root
:只在admin
数据库中可用。超级账号,超级权限
➢ 开启认证
进入服务器下的etc
目录
cd /etc
编辑mongodb.conf
文件
vi mongodb.conf
把auth
改为true
auth = true
➢ 重启mongo
关闭/启动
sudo service mongodb stop sudo service mongodb start
➢ node mongose
连接数据库
mongo
未开启认证时
`mongodb://localhost/dataBase`
或者
`mongodb://127.0.0.1/dataBase`
dataBase
为数据库的名称
如果mongo
开启了认证
连接方式为
mongodb://userName:password@localhost/dataBase
加上当前数据库用户名userName
和密码password
即可