mongodb用户权限配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb用户权限配置相关的知识,希望对你有一定的参考价值。

第一次安装monogdb时,admin数据库中没有任何用户,此时不管是否以--auth方式启动数据库,其他数据库(比如test数据库)中的用户都可以对另外的数据库(比如db1数据库)中的数据进行操作~!

> show dbs

local   (empty)

#查看admin 数据库中的用户信息,因为是刚建立的数据库所以user 为空~!

> use admin

switched to db admin


通过db.createUser()创建:

db.createUser(

  {

        user:"peiwouser",

        pwd:"peiwo2015",

       roles:

        [ 

           {

            role:"dbOwner",

            db:"peiwo"

            }

        ]

    }

);




> mongo  

> use admin  

> db.auth("root", "root")  

1  



定义:

创建一个数据库新用户用db.createUser()方法,如果用户存在则返回一个用户重复错误。



语法:

db.createUser(user, writeConcern)

    user这个文档创建关于用户的身份认证和访问信息;

    writeConcern这个文档描述保证MongoDB提供写操作的成功报告。


· user文档,定义了用户的以下形式:

{ user: "<name>",

  pwd: "<cleartext password>",

  customData: { <any information> },

  roles: [

    { role: "<role>", db: "<database>" } | "<role>",

    ...

  ]

}


user文档字段介绍:

    user字段,为新用户的名字;

    pwd字段,用户的密码;

    cusomData字段,为任意内容,例如可以为用户全名介绍;

    roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色;

    在roles字段,可以指定内置角色和用户定义的角色。


    Built-In Roles(内置角色):

    1. 数据库用户角色:read、readWrite;

    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    4. 备份恢复角色:backup、restore;

    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    6. 超级用户角色:root  

    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

    7. 内部角色:__system

    PS:关于每个角色所拥有的操作权限可以点击上面的内置角色链接查看详情。


· writeConcern文档(官方说明)

    w选项:允许的值分别是 1、0、大于1的值、"majority"、<tag set>;

    j选项:确保mongod实例写数据到磁盘上的journal(日志),这可以确保mongd以外关闭不会丢失数据。设置true启用。

    wtimeout:指定一个时间限制,以毫秒为单位。wtimeout只适用于w值大于1。


例如:在products数据库创建用户accountAdmin01,并给该用户admin数据库上clusterAdmin和readAnyDatabase的角色,products数据库上readWrite角色。

use products

db.createUser( { "user" : "accountAdmin01",

                 "pwd": "cleartext password",

                 "customData" : { employeeId: 12345 },

                 "roles" : [ { role: "clusterAdmin", db: "admin" },

                             { role: "readAnyDatabase", db: "admin" },

                             "readWrite"

                             ] },

               { w: "majority" , wtimeout: 5000 } )


验证:

mongo -u accountAdmin01 -p yourpassward --authenticationDatabase products



linux 远程连接

/usr/local/mongodb/bin/mongo 127.0.0.1/peiwo -u peiwouser -p


本文出自 “我的运维时光” 博客,请务必保留此出处http://aaronsa.blog.51cto.com/5157083/1741515

以上是关于mongodb用户权限配置的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB下配置用户权限

mongodb 3.2 用户权限管理配置

mongodb用户权限管理配置

mongodb--创建用户权限

Mongodb用户权限管理配置

MongoDB系列---用户及权限管理02