一、开启权限认证

1.windows下的mongodb开启权限认证

C:\Users\Administrator>sc delete MongoDB //原来创建的服务如果没有开启 则删除
[SC] DeleteService 成功
C:\Users\Administrator>mongod --dbpath "E:\MongoDB\data\db" --logpath "E:\MongoDB\data\log\MongoDB.log" -auth --install --serviceName "MongoDB" //-auth 参数 开启权限认证

关闭权限认证就是去掉auth参数重新启动mongodb即可

2.Linux下的mongodb开启权限认证

启动配置中加入 auth=true 即可

二、创建用户

创建语法:createUser(2.6之前版本为addUser)

createUser 的参数 {user:"用户名",pwd:"密码",customData:"对当前用户的描述",roles:[{role:"角色",db:"对应角色的数据库"}]}

mongodb内建了几个数据库角色类型:

1.read 可执行方法:find

2.readWrite 可执行方法:find,update,remove,insert

3.dbAdmin 管理数据库

4.dbOwner 1,2,3个权限的集合

5.userAdmin 该角色的用户可以管理其它角色的用户

db.createUser({user:"test",pwd:,roles:[{role:"read",db:"test"}]}) //创建一个在test数据库上只读的test用户
Successfully added user: {
"user" : "test",
"roles" : [
{
"role" : "read",
"db" : "test"
}
]
}
[c:\~]$ mongo -u test -p //exit 退出后用刚才创建的帐号登录
MongoDB shell version: 2.6.
connecting to: test //默认连接到test
show dbs //显示数据库被拒绝
--17T12::20.445+ listDatabases failed:{
"ok" : ,
"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
"code" :
} at src/mongo/shell/mongo.js:
show tables //显示test数据库上的表被允许
local
localtest
system.indexes
system.profile
user3_collection

三、创建角色

创建格式:

db.createRole({
    role:"角色名字",
    privileges:[
        {resource:{db:"数据库名字",collection:"集合名 不填则是任意集合"},actions:["权限名称"]}
    ],
    roles:[]
})

> db.createRole({
role:"profile_find",
privileges:[
{resource:{db:"test",collection:"system.profile"},actions:["find"]}
],
roles:[]
})
{
"role" : "profile_find",
"privileges" : [
{
"resource" : {
"db" : "test",
"collection" : "system.profile"
},
"actions" : [
"find"
]
}
],
"roles" : [ ]
}

mongodb的权限操作的更多相关文章

  1. MongoDB用户权限操作语法及示例

    1.创建用户 1.1.语法格式: 1.1.1.格式及例子 >db.createUser( { user: "<name>", pwd: "<cle ...

  2. 为mongodb加上权限

    我们知道mysql在安装的时候需要我们设置一个数据库默认的用户名和密码,mongodb也不例外,不过mongodb是默认的没有设置访问限制的,不需要输入用户名和密码都可以访问的,但是这样会十分的不安全 ...

  3. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

  4. MongoDB数据库简单操作

    之前学过的有mysql数据库,现在我们学习一种非关系型数据库 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数 ...

  5. MongoDB的简单操作

    一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoD ...

  6. MongoDB的常用操作总结

    简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. ...

  7. springboot 学习之路 14(整合mongodb的Api操作)

    springboot整合mongodb: mongodb的安装和权限配置  请点击连接参考 mongodb集成 : 第一步:引如pom文件 第二步:配置文件配置mongodb路径: 第三步:关于mon ...

  8. MongoDB Java API操作很全的整理

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...

  9. MongoDB用户权限管理配置

    MongoDB系列第一课:MongDB简介 MongoDB系列第二课:MongDB环境搭建 MongoDB系列第三课:MongDB用户管理 MongoDB系列第四课:MongoDB数据库.集合.文档的 ...

随机推荐

  1. Broom |tidy up a bit,模型,检验结果一键输出!

    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/TqFk66F2gUu_k8WEjKbLtA 更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号. ...

  2. SQL Server2008分离数据库

    1.右击数据库 2.Tasks 3.点击Detach 4.选取Drop Connections-->点击确定 5.开启本地数据库默认存储路径C:\Program Files\Microsoft ...

  3. 2..net core 和.net framework 版本

    同一台机器上可以安装多个版本的.net core runtime.比如: 每个.net core项目都可以指定自己所用的版本,所以改变某个项目的target version不会影响到其他的.安装新的r ...

  4. python——操作系统的发展史

    一.手工操作 —— 穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式.此时还没有操作系统的概念.    程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入 ...

  5. zabbix推送内存监控单应用shell

    利用top方式获取指定第三方的内存使用率 #!/bin/bash process=$1 if [ ! -z $process ];then cd /zabbix/zabbix-agent/script ...

  6. S3C2440 gpio + main

    相关文章:http://blog.csdn.net/zhangxuechao_/article/details/77990854 举例 start.S .globl _start _start: /* ...

  7. stm32 内部flash

    嵌入式闪存 闪存存储器有主存储块和信息块组成 大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页 编程和擦除闪存 闪存编程一次可以写入16位(半字) 闪存擦除操作可以按页面擦 ...

  8. spark 机器学习 ALS原理(一)

    1.线性回归模型线性回归是统计学中最常用的算法,当你想表示两个变量间的数学关系时,就可以用线性回归.当你使用它时,你首先假设输出变量(相应变量.因变量.标签)和预测变量(自变量.解释变量.特征)之间存 ...

  9. 第四篇:python基础之杂货铺

    在这一篇中我们将对上几篇的Python零碎的知识进行补充,即字符串的格式化输出,以及深浅拷贝,接下来我们将对这两种进行一一介绍. 一.字符串格式化输出 关于字符串的格式化输出,我们需要了解为什么需要字 ...

  10. Warning | 3719 | 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.

    MySQL的“utf8”实际上不是真正的UTF-8.“utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节. MySQL一直没有修复这个bug,他们在2010年发布了一个叫作 ...