mongodb_3.2.4 权限设置
在mongodb.conf配置文件加了auth = true 再启动后,用Robo 3T连接,会一直报授权失败。
这里说下几个注意的:
1,mongodb 不是创建个数据库就马上有的,需要往里面插入数据才有。所以用Robo 3T连上mongodb后,是看不到admin数据库的。
2,3.2.7版本默认是没有 admin库的。需要创建root权限级别用户才能看到。于是创建一个root角色的sa用户,命令如下:
./bin/mongo -port 27017
db.createUser({user:"sa",pwd:"sa0130",roles:[{role:"root",db:"admin"}]});
3,use admin;
db.system.version.find() 得到结果:{ "_id" : "authSchema", "currentVersion" : 5 }
4,将authSchema的版本由5改为3。
var schema = db.system.version.findOne({"_id" : "authSchema"});
schema.currentVersion=3;
db.system.version.save(schema);
5,删除之前所有创建过的user并重建user,
use imapi;
db.createUser({user:"write2", pwd:"write0130", roles:[{role:"read", db:"imapi"}, {role:"readWrite", db:"imapi"}, {role:"dbAdmin", db:"imapi"}]});
这一步如果不加role:"dbAdmin",会报MongoCommandException: Command failed with error 13: 'not authorized on imapi to execute command { createIndexes:错误。
6,关闭数据库,开启认证,启动数据库,重新连接。测试OK,用Robo 3T可以连上。
ps aux|grep mongo
kill -15 11045(PID)
./bin/mongod --config mongodb.conf
浙公网安备 33010602011771号