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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MongoDB 用户相关操作

       在我们第一次启动MongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定--auth选项,也就是并不需要认证。

    [root@VM-0-14-centos mongo_27017]# mongo
    MongoDB shell version v4.0.6
    connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("61c35b47-f43b-48fc-a43e-066f56987e9a") }
    MongoDB server version: 4.0.6
    > db
    test
    
    > show dbs;
    admin  0.000GB
    config 0.000GB
    local  0.000GB
    
    > use admin
    switched to db admin
    
    > show users;
    > db.system.user.find()

          我们第一次登录MongoDB的服务,输入db,发现当前数据库是test,但是show dbs却看不到test数据库,其实这个是MongoDB的一个特点,test是一个虚的数据库,想要看到test中的内容,你只需要给test数据库中插入一个文档即可。

         接着,我们可以看到,当我们输入show users的时候,没有看到任何账号信息。接下来我们准备开启--auth参数来重启MongoDB服务,在重启之前,我们需要保证已经分配了新的账号,下面我们开始分配账号:

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

    这里,我们可以看到,我们分配了一个账号:

    user:root     # 用户名

    pwd:123456 # 密码

    roles:root    # 角色

    db:admin     # 数据库

    角色root有必要做一下解释:

    Read:   允许用户读取指定数据库,
    readWrite:允许用户读写指定数据库
    dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
    clusterAdmin:     只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase:    只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase:  只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root:         只在admin数据库中可用。超级账号,超级权限

    更详细的内容,请参看官方文档:

    https://docs.mongodb.com/manual/reference/built-in-roles/#dbAdmin

    好了,创建好用户之后,我们重启MongoDB服务,在配置文件中打开--auth参数,或者直接在命令行里面指定auth参数,重新登陆:

    [root@VM-0-14-centos mongo_27017]# mongo
    MongoDB shell version v4.0.6
    connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("5f2b0fa6-a1e3-4aaf-b43f-3525e19c33d2") }
    MongoDB server version: 4.0.6
    > 
    > use admin
    switched to db admin
    > show users
    2020-10-28T23:42:06.127+0800 E QUERY  [js] Error: command usersInfo requires authentication :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    DB.prototype.getUsers@src/mongo/shell/db.js:1763:1
    shellHelper.show@src/mongo/shell/utils.js:859:9
    shellHelper@src/mongo/shell/utils.js:766:15
    @(shellhelp2):1:1
    > db.auth("root","123456")
    1
    > show users
    {
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }

    可以看到,当我们第一次使用show users的命令查看用户的时候,系统拒绝了我们,显示:

    Error: command usersInfo requires authentication

    然后我们进行权限校验:

    use admin

    db.auth("root","123456")

    这下可以了。

    不知道大家有没有留意到一个细节,我们登陆的时候,使用mongo命令登陆的,然后进行用户认证,有没有一种方法可以直接在登陆的时候就进行用户认证呢?答案是有的。

    登陆方法一:

    mongo

    use admin

    db.auth("user":"password")

    登陆方法二:

    mongo -u "user" -p "password"

    如下:

    [root@VM-0-14-centos mongo_27017]# mongo -u "root" -p "123456"
    MongoDB shell version v4.0.6
    connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("ef872d7a-77d9-43c2-bf3d-e04867379c0a") }
    MongoDB server version: 4.0.6
    > use admin 
    switched to db admin
    > show users
    {
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ],
        "mechanisms" : [
            "SCRAM-SHA-1",
            "SCRAM-SHA-256"
        ]
    }
    >

    到这里,我们已经学会了第一次登陆MongoDB之后,如何进行初始用户配置、如何开启MongoDB的认证模式(--auth参数)、以及在登录的时候如何进行用户认证,用户这块儿还有很多其他内容,下一节我们展开说。

    以上就是MongoDB 用户相关操作的详细内容,更多关于MongoDB 用户操作的资料请关注脚本之家其它相关文章!

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

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

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

    MongoDB 用户相关操作 MongoDB,用户,相关,操作,MongoDB,