浅析MongoDB用户管理

1. 创建一个超级用户

use admin
db.createUser(
  {
    user: "adminUserName",
    pwd: "userPassword",
    roles:
    [
      {
        roles: "userAdminAnyDatabase",
        db: "admin"
      }
    ]
  }
)

超级用户的role有两种,userAdmin或者userAdminAnyDatabase(比前一种多加了对所有数据库的访问)。

db是指定数据库的名字,admin是管理数据库。

2. 用新创建的用户登录

mongo --host xxx -u adminUserName -p userPassword --authenticationDatabase admin

3. 查看当前用户的权限

db.runCommand(
  {
    usersInfo:"userName",
    showPrivileges:true
  }
)

4. 创建一般用户,也是用createUser

use db01
db.createUser(
  {
    user:"oneUser",
    pwd:"12345",
    roles:[
      {role:"read",db:"db01"},
      {role:"read",db:"db02"},
      {role:"read",db:"db03"}
    ]
  }
)

5. 创建一个不受访问限制的超级用户

use admin
db.createUser(
  {
    user:"superuser",
    pwd:"pwd",
    roles:["root"]
  }
)

6. 修改密码

use admin
db.changeUserPassword("username", "xxx")

7. 查看用户信息

db.runCommand({usersInfo:"userName"})

8. 修改密码和用户信息

db.runCommand(
  {
    updateUser:"username",
    pwd:"xxx",
    customData:{title:"xxx"}
  }
)

注:

1. 和用户管理相关的操作基本都要在admin数据库下运行,要先use admin;

2. 如果在某个单一的数据库下,那只能对当前数据库的权限进行操作;

3. db.addUser是老版本的操作,现在版本也还能继续使用,创建出来的user是带有root role的超级管理员。

(0)

相关推荐

  • centos7防火墙导致java程序访问mongodb3.0.1时报错的问题分析

    环境描述: 数据库:mongodb3.0.1 数据库系统:centos7,(虚拟机,最小安装) 数据库驱动:mongo-Java-driver-3.0.0.jar 问题描述:shell环境下用mongo客户端程序能正常连接mongod,但java程序始终报错. 查看centos7的官方文档,知道centos7最小安装默认只安装防火墙的动态配置规则服务(firewalld),静态配置规则服务(iptables与ip6tables)需要另行安装. 1.关闭firewall: systemctl st

  • MongoDB为用户设置访问权限

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

  • MongoDB远程访问配置步骤详解

    本文介绍的内容是关于MongoDB远程访问配置,下面话不多说,直接来看看详细的步骤. 1.首先修改mongodb的配置文件 让其监听所有外网ip 编辑文件: /etc/mongodb.conf 修改后的内容如下: bind_ip = 0.0.0.0 port = 27017 auth=true 2. /etc/init.d/mongodb restart 3.连接 #本地连接 /usr/local/mongodb/bin/mongo #远程连接 /usr/local/mongodb/bin/mo

  • 关于mongoose连接mongodb重复访问报错的解决办法

    具体代码如下所示: var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); var Person = mongoose.model('Person',{ id:Number, name:String }); /*新增*/ router.get('/insert', function(req, res){ var student = new Person

  • nodejs中使用monk访问mongodb

    安装mongodb 我觉得还是用mannual install靠谱一点儿:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ 启动mongodb $ mongod 连接mogodb $ mongo mongo> use monk-app mongo> db.products.insert({"name":"apple juice", "description"

  • mongodb权限设置之添加管理员、普通用户的方法

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

  • mongodb 修改用户密码 2种方法

    1,错误做法,直接更新表 > db.system.users.update({"_id" : ObjectId("529e67553992b24438d5e315")},{"user":"tank2","readOnly" : false,"pwd":"123"}) > db.system.users.find(); { "_id" :

  • mongodb 添加用户及权限设置详解

    例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,而mongodb这个最像关系型的数据库,有没有这样的表呢. 一,掌握权限,理解下面4条基本上就差不多 1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证. 2,切换到admin数据库,添加的账号才是管理员账号. 3,用户只能在用户所在数据库登录,包括管理员账号. 4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以.这一

  • Mongodb如何开启用户访问控制详解

    前言 Mongodb 数据库默认情况下是没有访问控制的,整个数据库对外是开发的,只要能连上数据库,则可以进行任何操作,这会对数据带来很大的风险.当然,我们可以启用mongodb的访问控制,只让通过认证的用户才能对数据库进行角色范围内的操作. 启用访问控制可以通过在启动 mongodb 时指定 --auth 参数来设置,另外还涉及到创建用户 db.createUser 操作以及一些角色的定义,我们先来看这部分内容. db.createUser() 用法 db.createUser({ user:

  • MongoDB系列教程(四):设置用户访问权限

    我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全,我们需要手动的为mongodb加上权限限制命令.   首先建立一个默认的账户   复制代码 代码如下: Use admin     Db.addUser('sa','sa') 这样我们建立了一个用户名为sa,密码为sa的默认账户.       在此时我们还是可以不输入用户名和密码进入数据库的,接下

随机推荐