MongoDB-- 用户及权限

     初次接触MongoDB用户设置及认证,与以前不一样,有点搞不清楚状况,现在有点思绪了。

    

      先说明几点:

      1、MongoDB安装后默认不启动认证,不需要用户名和密码就可以随意访问。

      2、MongoDB用户权限分配的操作,是针对某个数据库来说的。

      3、每个数据库都有一个system.users集合,记录权限相关的信息,也就是谁有权限访问此数据库。

      4、MongoDB安装后默认有一个admin数据库,此时admin中的system.users集合中没有一个用户,

            这样不管mongodb启动时有没有启用认证(添加--auth),都可以无需认证进行随意操作,直到admin

            的system.users集合中添加了一个用户并且启动了认证,操作才会受限。

      5、admin的system.users集合中的用户具有超级权限,也就是说在admin中创建的用户可以对其他库操作.

      6、必须在启动认证前,在admin的system.users集合先添加一个超级用户,否则就无法操作库了。

      7、super admin必须从admin那么登录,然后再use其它库才可以,否则直接在其它库auth没用。

      8、如果想单独访问一个库,用独立的用户名,就需要在该库的system.users集合中创建相应的user,然

           后进行认证才可以。(先登入admin,在use该库,然后创建user,接着auth一下,这需要有super权限。)

      9、启动认证后,只有super admin 才有权限进行show dbs; 

    

     启动认证

     1、在Cmd中输入regedit,然后搜索mongodb

     2、找到ImgPath,修改其值,添加 -auth,如下

          D:\mongo\bin\mongod.exe --logpath D:\mongo\log\mongodb.log --logappend --dbpath D:\mongo\db

          --directoryperdb -auth --service

   

     操作用户

     添加用户

     db.addUser('root','root') 默认有读写权限

     修改用户

     db.addUser('root','root2')

     删除用户

  db.system.users.remove({user:'root'})

     查询用户

     db.system.users.find()

     用户认证

     db.auth('root','root')

     用户登入

     mongo admin(库) -u root -p root

     

猜你喜欢

转载自jacobcookie.iteye.com/blog/1980666