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. C++关于锁的总结(一)

    C++关于锁的总结(一) 线程中的锁分为两种,互斥锁和共享锁. 相关的头文件有<mutex>,<shared_mutex>,前者具有std::unique_lock操作,用于实 ...

  2. AMBA简介

    AMBA AMBA(Advanced Microcontroller Bus Architecture)先进的微控制器总线架构是一个免费.开放的标准,用于SoC内部功能模块之间的互连和管理.对成功设计 ...

  3. spring security之web应用安全

    一.什么是web应用安全,为了安全我们要做哪些事情? 保护web资源不受侵害(资源:用户信息.用户财产.web数据信息等)对访问者的认证.授权,指定的用户才可以访问资源访问者的信息及操作得到保护(xs ...

  4. 剑指offer-拓展训练-N皇后的问题-全排列

    /* 题目: N皇后的问题. */ /* 思路: 全排列. 声明一个具有N个元素的数组curr,每个下标i(0>i>n)代表行,每个curr[i]代表列,所以初始化为curr[i] = i ...

  5. TTradmin v2.1 【2019年12月12日更新】简单好用的临时远程协助软件

        TTradmin 是一款免端口映射可直接穿透任何内网,基于VNC核心的即时远程协助软件.在使用的时候只需要保证“协助端”和“被协助端”使用同一个验证码即可实现安全便捷的远程控制,不需要进入路由 ...

  6. sublime—text终端无法输入,不支持scanf、input等语法问题的解决

    sublimetext是个很好用的轻量编辑器,,支持多语言语法高亮,自动补全,快捷键编译运行,而且ui也不错挺简洁,我一直在用.我之前浏览帖子时候看到有些人也在用这个编辑器. 但是吧,这个编辑器的的编 ...

  7. openlayers显示比例尺

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. 关于c# hashtable的一个注意点

    Hashtable在操作时,一定要注意一点: 当保存值时,如果使用的是字符串作为键,那么在判断是否存在此键时,必须使用字符串来检查,否则,即使是能隐式转换的值也将无法检查到,如: Hashtable ...

  9. Android studio中为项目添加模块依赖的过程

    https://blog.csdn.net/cheng__lu/article/details/74574582 Android studio中为项目添加模块依赖的过程 1.点击菜单file>p ...

  10. java下的slf4j

    一.导读 我们使用log4j框架时,经常会用slf4j-api.在运行时,经常会遇到如下的错误提示: ? 1 2 3 4 5 SLF4J: Class path contains multiple S ...