首先,MongoDB默认情况下是无权限控制的。若需要数据库带有权限控制可以由以下两种方法:
1. 在启动db时带上auth参数。
2. 在config文件中加入auth=true。
其实2种方法大同小异,取决于你如何启动db,一个只是把启动参数放在了config文件里,修改更为简单。个人感觉还是利用config文件启动较为清楚和简便。
为了获得数据库的操作权限,我们需要在admin里创建role为root的user,这样我们才能对db进行操作。如何创建user可以参看以下代码:
use admin // 进入admin db db.createUser( { user:"root", pwd:"root", roles: [ { role:"root", db:"admin" } ] } )
在2.6.3中,依旧可以使用db.addUser来创建root用户,但会收到warning,该方法已经被废弃,所以尽量采用createUser来建立用户。
随后我们通过auth方法来认证用户就可以对数据库进行操作了。因为我们是在admin中创建的root用户,所以我们必须先在admin中进行认证,方法见下:
use admin db.auth("root", "root")
在认证成功后,就可以use其他db来进行操作了。