一、开启权限认证

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

  1. C:\Users\Administrator>sc delete MongoDB //原来创建的服务如果没有开启 则删除
  2. [SC] DeleteService 成功
  3. 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 该角色的用户可以管理其它角色的用户

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

三、创建角色

创建格式:

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

  1. > db.createRole({
  2. role:"profile_find",
  3. privileges:[
  4. {resource:{db:"test",collection:"system.profile"},actions:["find"]}
  5. ],
  6. roles:[]
  7. })
  8. {
  9. "role" : "profile_find",
  10. "privileges" : [
  11. {
  12. "resource" : {
  13. "db" : "test",
  14. "collection" : "system.profile"
  15. },
  16. "actions" : [
  17. "find"
  18. ]
  19. }
  20. ],
  21. "roles" : [ ]
  22. }

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. SQL Server存储过程中字符串前加N的含义

    使用方法: N'字符串' 解释: 意思为后面的数据类型为NChar或者NVarchar 使用N前缀 在服务器上执行的代码中(例如在存储过程和触发器中)显示的Unicode字符串常量必须以大写字母N为前 ...

  2. springmvc+mybatis的增删改查入门

    先到官网了解mybatis的语法:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html 前端用了thymeleaf和vue.js,效果图和demo地址:ht ...

  3. 遇到 GLFW 我的demo可以运行 但是公司的程序调用我的so运行不起来

    //to do 原       因:  发现 自身demo的程序的shaders更新了  但是公司程序却没有更新 解决办法:更新公司程序的shaders 为最新版本 吸取的教训: 不仅仅要更新公司程序 ...

  4. 【转载】C#通过StartWith和EndWith方法判断字符串是否以特定字符开始或者结束

    C#开发过程中针对字符串String类型的操作是常见操作,有时候业务需要判断某个字符串是否以特定字符开头或者特定字符结束,此时就可使用StartsWith方法来判断目标字符串是否以特定字符串开头,通过 ...

  5. 关于微信小程序分享/转发功能的实现方法

    实现微信小程序分享,可以有两个入口: 1. 小程序右上角菜单自带的分享 这个入口是默认关闭的,需要在当前页面中调用showShareMenu方法,开启分享 onLoad: function () { ...

  6. 上传图片,图片过大压缩处理以及解决自拍时会出现图片横屏的bug修复、长按保存图片

    js部分:module.exports = { resize: function (file, callback, options) { //配置 options = Object.assign({ ...

  7. java ajax上传文件

    包括案例 1.springmvc上传 2.ajax上传 3.form表单与文件上传 - 1. http://localhost:8080/ 第一种:springmvc上传- 2. http://loc ...

  8. Jmeter学习笔记(四)配置元件之计数器

    在接口测试中,有时候需要重复跑一个接口,里面的某个参数的值不能每次都一样,这个时候我们可以使用计数器来实现,名称+计数器. 1.线程组->添加->配置元件->计数器 2.添加效果如下 ...

  9. reinterpret

    reinterpret意为“重新解释” reinterpret_cast是C++中与C风格类型转换最接近的类型转换运算符.它让程序员能够将一种对象类型转换为另一种,不管它们是否相关. reinterp ...

  10. for循环的耗时问题

    结论——用变量来缓存数组长度,效率会更高