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

    

posted @ 2018-01-30 19:53  涓水之子  阅读(182)  评论(0)    收藏  举报