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. 木兰国产编程语言 Mulan--附带下载地址

    我国自主研发的 编程语言:木兰. 中国新闻网 : http://www.cas.cn/cm/202001/t20200116_4731821.shtml 说明介绍 百度一番后,发现没有下载地址,没有官 ...

  2. ES6之常用开发知识点:入门(一)

    ES6介绍 ES6, 全称 ECMAScript 6.0 ,2015.06 发版. let 和 const命令 let命令 let 命令,用来声明变量.它的用法类似于var,区别在于var声明的变量全 ...

  3. 【Flutter】Demo1一个名字生成器

    根据官网的例子敲的~效果还是很棒的! 首先导入一个第三方包,可以用来随机生成单词组合 在 pubsepec.yaml下添加如下语句 dependencies: flutter: sdk: flutte ...

  4. Vue中data元素之间相互赋值的陷阱

    今天在整理代码时,遇到这样的一个场景,下面将结合示例说明: (一)在Vue文件中定义一个const常量,如下图所示: (二)在data中有三个元素是这样赋值的,如下图所示: (三)在created() ...

  5. 处理异常 ‘try’——‘except’ 方法

    try: name 2+' [][3] {}['k'] ret = int(input('number>>>')) print(ret*'*') except ValueError: ...

  6. Linux系统的启动原理

    Linux系统的启动原理 RHEL的启动原理BIOS自检-MBR-启动GRUB-加载内核-systemd的init进程 systemd的初始化进程加载需要的服务,挂载文件系统/etc/fstabsys ...

  7. Dijkstra+SPFA 模板

    Dijkstra 引用自:点击打开链接 #include <algorithm> #include <cstdio> #include <cstring> #inc ...

  8. Jekyll 摘要

    在 Windows 上安装 Requirements Permalink Ruby version 2.4.0 or above, including all development headers ...

  9. Linux X_window与文本模式的切换

    用x_window启动的情况下的切换方法: [Ctrl] + [Alt] + [F1] ~ [F6]  :文字接口登陆 tty1 ~ tty6 终端机: [Ctrl] + [Alt] + [F7]   ...

  10. Python函数装饰器

    装饰器的原则 1)不修改被修饰函数的源代码: 2)不修改被修饰函数的调用方式: 装饰器的知识点 = 高阶函数 + 函数嵌套 + 闭包 1. 只用高阶函数写装饰器--->有瑕疵 import ti ...