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

时间: 2024-10-18 12:31:13

mongodb用户权限配置的相关文章

Mongodb 账户权限配置

1.第一步创建超级管理用户 use admin db.createUser({ user:'admin', pwd:'admin', roles:[{role:'root',db:'admin'}] }) 2.第二步修改 Mongodb 数据库配置文件 路径:C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg 配置: security: authorization: enabled 3.第三步重启 mongodb 服务 4.第四步用超级管理员账户

Mongodb用户权限管理配置

一.Mongodb命令 主要命令 show dbs #显示数据库列表 show collections #显示当前数据库中的集合(类似关系数据库中的表) show users #显示用户 use <db name> #切换当前数据库,如果数据库不存在则创建数据库. db.help() #显示数据库操作命令,里面有很多的命令 db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 db.foo.find() #对于当前

mongodb 用户 权限 设置 详解

原文地址:http://blog.51yip.com/nosql/1575.html 我知道的关系型数据库都是有权限控制的,什么用户能访问什么库,什么表,什么用户可以插入,更新,而有的用户只有读取权限. 例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,而mongodb这个最像关系型的数据库,有没有这样的表呢. 一,掌握权限,理解下面4条基本上就差不多 1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证. 2

Rabbitmq用户权限配置

由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本引入的). 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码. 相应的命令 (1) 新增一个用户 rabbitmqctl add_user Username Password (2) 删除一个用户 rabbitmqctl delete_user Userna

mongodb 用户权限控制

MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local.local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use

【samba】samba 用户权限配置(转)

首先要保证你的samba安装并配置好,关于安装和配置samba请参考此文章 http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx, 在这篇文章里对于samba共享的目录为所有用户开放了全部的权限,现在由于公司需求改变要进行修改. 需求1:有一个共享目录为rule,里面放公司的规章制度,所有用户都可以查看,但是不能修改 解决方法:在smb.conf里配置read only = yes,具体示例如下:[rule]path

mongodb用户权限操作常用命令

由于公司还有几台mongodb的数据库,需要开放某部分权限给外部人员使用,所以这里记录一下,仅供需要的朋友使用. 1. MongoDB常用命令 [[email protected] ~]# ps -ef|grep mongod [[email protected] ~]# mongo --host=127.0.0.1 --port=27017 MongoDB shell version: 3.2.7 connecting to: 127.0.0.1:27017/test > show dbs  

MongoDB的权限配置:开启auth之后的eval权限

本文为工作日志,解决当打开MongoDB的 --auth 之后,导致无法使用 db.eval() 的问题. 问题描述: 使用--auth启动MongoDB,登录成功后,执行db.eval,报如下错误: > db.eval('return 1111') 2015-03-04T15:18:54.062+0800 { "ok" : 0, "errmsg" : "not authorized on test to execute command { $eva

mongodb用户权限管理

1.添加一个管理账号 mongo --host 127.0.0.1 --port  27000 use admin db.addUser('admin','123456') 2.通过账号登陆 mongo --host 127.0.0.1 --port  27000 -u admin -p 123456 admin 或者 mongo --host 127.0.0.1 --port  27000  use admin db.auth('admin','123456')  ##返回为1表示认证ok,返