• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mongodb基础之用户权限管理实例教程

    前言

    本文主要介绍了mongodb用户权限管理的相关内容,关于接着上次实践的部分,下面话不多说了,来一起看看详细的介绍吧

    启动mongodb并连接

    ./bin/mongod -f conf/mongod.conf
    ./bin/mongo 127.0.0.1:12345

    查看默认的数据库情况

    > show dbs
    admin 0.000GB
    local 0.000GB
    
    > use admin
    switched to db admin
    > show tables
    system.version

    可以看到,目前数据库里除了一些基本信息,什么都没有

    在创建设置用户权限之前,先了解一下文档知识

    创建用户

    # demo
    db.createUser(
     {
     user: "reportsUser",
     pwd: "12345678",
     roles: [
      { role: "read", db: "reporting" },
      { role: "read", db: "products" },
      { role: "read", db: "sales" },
      { role: "readWrite", db: "accounts" }
     ]
     }
    )

    数据库内建角色

    数据库用户角色

    数据库管理角色

    集群管理角色

    备份恢复角色

    所有数据库角色

    超级用户角色

    内部角色

    有了创建语法,和参数说明,接下来开始实践.

    注意,还有一点,账号是跟着数据库绑定的,在那个库里授权,就在那个库里验证(auth)
    否则会失败

    创建 账号管理授权权限 的账号

    > db.createUser(
    ... {
    ... user: 'admin',
    ... pwd: '123456',
    ... roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]
    ... }
    ... )
    Successfully added user: {
      "user" : "admin",
      "roles" : [
        {
          "role" : "userAdminAnyDatabase",
          "db" : "admin"
        }
      ]
    }

    然后退出数据库

    > use admin
    switched to db admin
    > db.shutdownServer()

    重新启动mongodb,记得在配置文件mongod.conf里加上 auth = true

    ./bin/mongod -f conf/mongod.conf
    ./bin/mongo 127.0.0.1:12345
    > show dbs # 没有验证,没有权限,会出错
    "errmsg" : "not authorized on admin to execute command
    > use admin
    > db.auth('admin', '123456')
    1
    # 返回 1 表示授权成功,0表示失败
    > show dbs #已经授权,可以查看了

    创建 读、读写权限的账户

    > use book
    switched to db book
    > db.createUser(
    ... {
    ... user: 'zhangsan',
    ... pwd: 'zhangsan',
    ... roles: [{role: 'read', db: 'book'}]
    ... }
    ... )
    Successfully added user: {
      "user" : "zhangsan",
      "roles" : [
        {
          "role" : "read",
          "db" : "book"
        }
      ]
    }
    > db.createUser(
    ... {
    ... user: 'lisi',
    ... pwd: 'lisi',
    ... roles: [{role: 'readWrite', db: 'book'}]
    ... }
    ... )
    Successfully added user: {
      "user" : "lisi",
      "roles" : [
        {
          "role" : "readWrite",
          "db" : "book"
        }
      ]
    }
    > show users
    {
      "_id" : "book.lisi",
      "user" : "lisi",
      "db" : "book",
      "roles" : [
        {
          "role" : "readWrite",
          "db" : "book"
        }
      ]
    }
    {
      "_id" : "book.zhangsan",
      "user" : "zhangsan",
      "db" : "book",
      "roles" : [
        {
          "role" : "read",
          "db" : "book"
        }
      ]
    }

    然后验证用户权限是否正确

    > db.book.insert({book: '小人书'}) # 没验证,会出错
    WriteResult({
      "writeError" : {
        "code" : 13,
        "errmsg" : "not authorized on book to execute command { insert: \"book\", docum
    ents: [ { _id: ObjectId('5959b56edcc047dfe5c9b336'), book: \"小人书\" } ], ordered: true }"
      }
    })
    > db.auth('lisi', 'lisi')
    1
    > db.book.insert({book: '小人书'})
    WriteResult({ "nInserted" : 1 })
    > db.auth('zhangsan', 'zhangsan') # 用户切到 zhangsan
    1
    > db.book.find() # 可以查看
    { "_id" : ObjectId("5959b59fdcc047dfe5c9b337"), "book" : "小人书" }
    > db.book.insert({book: '择天记'}) # 没有write权限,会失败
    WriteResult({
      "writeError" : {
        "code" : 13,
        "errmsg" : "not authorized on book to execute command { insert: \"book\", docum
    ents: [ { _id: ObjectId('5959b650dcc047dfe5c9b338'), book: \"择天记\" } ], ordered: true }"
      }
    })

    创建 root 超级权限账号

    这个超级权限包括 授权 和 操控数据库集合数据,比较简单,只需要把role设置成 root

    > use admin
    switched to db admin
    > db.auth('admin', '123456')
    1
    > db.createUser(
    ... {
    ... user: 'dongsheng',
    ... pwd: '123456',
    ... roles: [{role: 'root', db: 'admin'}]
    ... }
    ... )
    Successfully added user: {
      "user" : "dongsheng",
      "roles" : [
        {
          "role" : "root",
          "db" : "admin"
        }
      ]
    }
    > db.auth('dongsheng', '123456')
    1
    > use book
    switched to db book
    > db.book.insert({book: '笑傲江湖'})
    WriteResult({ "nInserted" : 1 })
    > db.book.find()
    { "_id" : ObjectId("5959b59fdcc047dfe5c9b337"), "book" : "小人书" }
    { "_id" : ObjectId("5959b7abdcc047dfe5c9b339"), "book" : "笑傲江湖" }

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • MongoDB 简单入门教程(安装、基本概念、创建用户)
    • MongoDB数据库用户角色和权限管理详解
    • MongoDB 用户管理
    • MongoDB在系统数据库local中无法创建用户的解决办法
    • Mac下安装配置mongodb并创建用户的方法
    • Mongodb 3.2.9开启用户权限认证问题的步骤详解
    • MongoDB快速入门笔记(七)MongoDB的用户管理操作
    • MongoDB系列教程(四):设置用户访问权限
    • Windows下MongoDB配置用户权限实例
    • mongodb 添加用户及权限设置详解
    • MongoDB为用户设置访问权限
    • MongoDB 用户相关操作
    上一篇:MongoDB 3.0+安全权限访问控制详解
    下一篇:MongoDB释放空闲空间的几种常用方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mongodb基础之用户权限管理实例教程 mongodb,基础,之,用户,权限,