{MongoDB} MongoDB 3.2 auth

MongoDB创建用户时提供了各种权限,默认的内置权限参见文档:here
一般常见的权限是 readWrite, userAdmin, dbAdmin, dbOwner.

readWrite:

支持find,insert,remove,update等

userAdmin:

支持createUser,createRole,changePassword等。

dbAdmin:

支持dbstats,find,listCollections,dropCollection等

dbOwner:

是readWrite,userAdmin和dbAdmin的权限集合。

那么下面这条命令

use admin
db.createUser({user:'Matt',pwd:'123456',roles:[{role:"dbOwner",db:"admin"},{role:"dbOwner",db:"Bourne"}]})

含义是Matt可以在admin库验证权限,之后可以在Bourne读取记录和创建用户了。

use Bourne
db.createUser({user:'Bruce',pwd:'123456',roles:[{role:"dbOwner",db:"admin"},{role:"dbOwner",db:"Bourne"}]})

Matt是Bourne的dbOwner,所以他可以createUser,另外他也是admin的dbOwner,所以他也可以给Bruce加上admin的dbOwner权限。

假如他创建另外一个用户Wayne

use Bourne
db.createUser({user:'Wayne',pwd:'123456',roles:[{role:"dbOwner",db:"Bourne"}]})

显然Wayne只拥有Bourne库的操作权限。

要注意的是,在哪个库创建的用户,就在哪个库验证权限,之后再切到其他库。

dbOwner算是很高的权限了,既可以添加用户,又可以添加记录。 对于一般用户说,只需要read或者readWrite就足够了。不过,mongo还可以有更高类似于root的权限。

db.createUser({user:'root',pwd:'123456',roles:[{role:"userAdminAnyDatabase",db:"admin"}, {role:"readAnyDatabase",db:"admin"}]})

你可能感兴趣的:({MongoDB} MongoDB 3.2 auth)