注意:使用自带web管理界面,需要 在配置文件中httpinterface=true,并创建一个用户
mkdir db mkdir logs cd bin/
vim mongodb.conf 输入以下内容: dbpath=/usr/local/mongodb/db logpath=/usr/local/mongodb/logs/mongodb.log bind_ip=0.0.0.0 port=27017 fork=true
#启用页面监控
httpinterface=true #nohttpinterface=true
进入mongodb的shell模式: /usr/local/mongodb/bin/mongo 查看数据库列表: show dbs 查看当前db版本: db.version();
userAdminAnyDatabase 这个角色拥有分配角色和用户的权限,但没有查写的缺陷 root 这是超级管理员 readWrite 有读写权限 read 有读权限
进入shell模式: /usr/local/mongodb/bin/mongo
use admin //切换到admin数据库
db.createUser( { user: “root”, pwd: “testMongoDB2016”, roles:[{role:”root”, db:”admin”}] } );
db.createUser( { user: “mongoRoot”, pwd: “testMongoDB2016”, roles:[{role:”userAdminAnyDatabase”, db:”admin”}] } ); 验证一下,在哪里注册用户的要去哪个db里认证: db.auth(“mongoRoot”, “testMongoDB2016”) 此后可以用这个mongoRoot账号去创建某一数据库管理账号: db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]})
但发现此时增加的账号不能在客户端登录,原因是mongodb版本错了: 先退出 mongod 服务
use admin db.auth(“root”, “testMongoDB2016”) db.shutdownServer() 再在无认证情况下打开 mongod use admin db.dropUser(“hhq163”) db.system.version.update({ “_id”:”authSchema”},{$set:{“currentVersion”:3}}) db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]}) 再以认证的形式启动mongodb
如果需要创建某一个新DB的账号: 需要在shell下执行: use TestDB db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”TestDB”}]})
vim /usr/local/mongodb/bin/mongodb.conf 在文件末尾增加以下这一行: auth=true
如果开户安全认证,则要先认证: use admin db.auth(“root”, “testMongoDB2016”) db.shutdownServer()
