MongoDB常用命令

> show dbs                  #显示数据库列表
> show collections        #显示当前数据库中的集合(类似关系数据库中的表)
> show users               #显示用户
> use <db name>        #切换当前数据库,如果数据库不存在则创建数据库。
> db.help()                 #显示数据库操作命令,里面有很多的命令
> db.foo.help()            #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
> db.foo.find()            #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
> db.foo.find({a: 1})   #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
> db.dropDatabase()   #删除当前使用数据库
> db.cloneDatabase("127.0.0.1")                            #将指定机器上的数据库的数据克隆到当前数据库
> db.copyDatabase("mydb", "temp", "127.0.0.1")    #将本机的mydb的数据复制到temp数据库中
> db.repairDatabase() #修复当前数据库
> db.getName()          #查看当前使用的数据库,也可以直接用db
> db.stats()                #显示当前db状态
> db.version()            #当前db版本
> db.getMongo()        #查看当前db的链接机器地址
> db.serverStatus()    #查看数据库服务器的状态

1、添加管理员账号

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

2、添加普通用户(假定数据库名是test)

> use test
> db.createUser({user: "test", pwd: "test", roles: [{role: "readWrite", db: "test"}]})

role(角色)

简要说

数据库用户角色(DB User Roles)

read readWrite

为某个数据库创建一个用户, 分配该数据库的读写权力

数据库管理员角色(DB Admin Roles)

dbAdmin  dbOwner  userAdmin

拥有创建数据库, 和创建用户的权力

集群管理角色(Culster Administration Roles)

clusterAdmin  clusterManager  clusterMonitor  hostManager

管理员组, 针对整个系统进行管理

备份还原角色(Backup and Restoration Roles)

backup  restore

备份数据库, 还原数据库

所有数据库角色(All-Database Roles)

readAnyDatabase  readWriteAnyDatabase  userAdminAnyDatabase  dbAdminAnyDatabase

拥有对admin操作的权限

Superuser Roles(超级管理员)

root

dbOwner userAdmin userAdminAnyDatabase这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户可以在任何数据库上定义它们自己的权限

3、删除用户

> db.dropUser('admin')

4、开启权限验证

在mongod.conf中的 security 节点中添加

security:
  authorization: enabled

并重启mongod服务

如果从命令行启动数据库需加 --auth 参数

# mongod --auth

命令行使用开启用户权限的数据库

> use test
> db.auth('test', 'test')
1
> show collections

使用mongoose链接开启用户权限的数据库

1、使用mongoose.connect和mongoose.createConnection

db = mongoose.createConnection('mongodb://test:test@localhost:27017/test');

2、使用Connection#open

db.open('localhost', 'test', 27017, {user:'test', pass:'test'});

注意:如果链接有用户权限的数据库,port端口号是必须的,哪怕是默认的27017。

为mongoDB加用户权限管理的更多相关文章

  1. MongoDB的用户权限管理

    1.创建用户并授权语法:db.createUser({user:"UserName",pwd:"Password",roles:[{role:"Rol ...

  2. 如何对MongoDB 3.2.7进行用户权限管理配置

    转自:https://www.jianshu.com/p/a4e94bb8a052 上次写了一篇在CentOS7上源码安装MongoDB 3.2.7,完成了MongoDB 3.2.7的安装,但需要应用 ...

  3. ClickHouse学习系列之二【用户权限管理】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.在安装完之后首先做的应该如何设置用户密码以及权限控制.因为 ...

  4. MongoDB学习笔记—权限管理

    1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...

  5. Linux 服务器用户权限管理改造方案与实施项目

    Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...

  6. PostgreSQL学习之【用户权限管理】说明

    背景 最近在学习PostgreSQL,看了用户权限管理文档,涉及到的知识点比较多,顺便写篇文章进行整理并不定时更新,也方便自己后续进行查阅. 说明 注意:创建好用户(角色)之后需要连接的话,还需要修改 ...

  7. Mysql数据库用户及用户权限管理,Navicat设置用户权限

    Mysql数据库用户及用户权限管理,Navicat设置用户权限 一.Mysql数据库的权限 1.1 mysql数据库用户权限级别 1.2 mysql数据库用户权限 1.3 存放用户权限表的说明 二.用 ...

  8. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  9. django 基于proxy实现用户权限管理

    项目中经常会遇到用户权限管理的问题,django adminsite已经提供非常实用的用户权限管理机制.不过有些时候,我们希望根据相关用户属性来过滤adminsite中显示的内容.下文将结束如何实现: ...

随机推荐

  1. Elasticsearch客户端源码剖析

    注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 注:本文源链接:https://www.cnblogs.com/chloneda/p/es-cli ...

  2. 关于对 softirq、work_queue、tasklet 学习后的一点总结

    本文基于linux版本:4.14.111 简单的总结下 softirq.work_queue.tasklet 三种中断下半部的工作原理及区别,并附上三种形式的简单实例. 一.运行原理① softirq ...

  3. ROS 环境变量配置

    unbantu16.04 linux 版本,  ros系统 kinetic版本 1. ros系统可以通过rospack find  package_name  /   rosrun package_n ...

  4. kali-linux下载地址

    1 https://www.kali.org/downloads/2 http://cdimage.kali.org/ 下载地址.

  5. 清北学堂—2020.1提高储备营—Day 1 afternoon(二分、分治、贪心)

    qbxt Day 1 afternoon --2020.1.17 济南 主讲:李佳实 目录一览 1.二分法 2.分治 3.贪心 总知识点:基础算法 一.二分法 (1)算法分析:二分法是一种暴力枚举的优 ...

  6. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  7. xshell远程打开Linux图形界面加速方法:

    https://blog.csdn.net/zyy247796143/article/details/82143832 服务器安装: yum install Xvfb    :在安装完谷歌浏览器后,安 ...

  8. Java邮件发送工具类

    个人博客 地址:https://www.wenhaofan.com/article/20190507104851 引入Pom依赖 依赖于apchae email包,maven项目可直接加入以下依赖,普 ...

  9. C - Beautiful Now

    Anton has a positive integer nn, however, it quite looks like a mess, so he wants to make it beautif ...

  10. Java泛型(T)与通配符?

    前言:使用泛型的目的是利用Java编译机制,在编译过程中帮我们检测代码中不规范的有可能导致程序错误的代码.例如,我们都知道list容器可以持有任何类型的数据,所以我们可以把String类型和Integ ...