• Mongodb用户/权限


    mongodb分为管理员用户和普通用户,并且还有个验证库,建立用户时use到的库(验证库),信息就存储在admin数据库下。

    在使用用户时,要加上验证库才能登录,对于管理员用户,必须在admin下创建,验证用户返回值为1即成功。

    1、创建管理员用户

    语法:
    user:用户名
    pwd:密码
    roles:
        role:角色名
        db:作用对象
    
    常用role:root、readWrite、read
    > use admin
    switched to db admin
    > db.createUser({
    ... user:"root",
    ... pwd:"yy123456",
    ... roles:[{role:"root",db:"admin"}]
    ... }
    ... )
    Successfully added user: {
        "user" : "root",
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ]
    }
    > db.auth('root','yy123456')
    1
    > 

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

    2、创建普通用户

    > use test
    switched to db test
    > db.createUser({
    ... user:"test_1",
    ... pwd:"123456",
    ... roles:[{role:"readWrite",db:"test"}]
    ... })
    Successfully added user: {
        "user" : "test_1",
        "roles" : [
            {
                "role" : "readWrite",
                "db" : "test"
            }
        ]
    }

     > db.auth('test_1','123456')
     1
     >

    3、登录

    #本地登录
    mongo -uroot -pyy123456 admin
    mongo -utest_1 -p123456 test #远程登录 mongo
    -uroot -pyy123456 ip+端口/admin
    mongo -utest_1 -p123456 ip+端口/test

    4、删除用户

     以root用户登录,删除后use到admin库,查看所用用户信息

    > use test
    switched to db test
    > db.dropUser("test_1")
    true
    > db.auth('test_1','123456')
    Error: Authentication failed.
    0
    > use admin
    switched to db admin
    > db.system.users.find().pretty()
    {
        "_id" : "admin.root",
        "userId" : UUID("31cc514b-00b2-434b-8d78-2dcd450f3cf2"),
        "user" : "root",
        "db" : "admin",
        "credentials" : {
            "SCRAM-SHA-1" : {
                "iterationCount" : 10000,
                "salt" : "WVVZcAR1PnSjQLTAMolnYA==",
                "storedKey" : "m5P8eMDZ7NvmpjAYH8FGTO6+k9k=",
                "serverKey" : "B1mD3dfNpvlza7eO5g80MovmUaA="
            },
            "SCRAM-SHA-256" : {
                "iterationCount" : 15000,
                "salt" : "eivTZLkntjrnQllzhE8uUHCWtNdVpcvMT8Pysg==",
                "storedKey" : "9NjJIph+k4WOnC+Fa/Th1LIzRbItK/R33EOZX8DC3+0=",
                "serverKey" : "eF3eieOZvDEzQ0fMZlnOy1q0zXSwcD/5FeTzM7jIbFM="
            }
        },
        "roles" : [
            {
                "role" : "root",
                "db" : "admin"
            }
        ]
    }
    > 

    5、用户权限

    常用角色权限说明
    Read 允许用户读取指定数据库
    readWrite 允许用户读写指定数据库
    dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
    userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
    clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
    readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
    readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
    userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
    dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
    root 只在admin数据库中可用。超级账号,超级权限
  • 相关阅读:
    20155206 2017-2018-1 《信息安全系统设计基础》第3周学习总结
    20155206 第三周随堂测试补交
    20155206 2017-2018-1 《信息安全系统设计基础》第1周学习总结
    20155206 实验五 网络编程与安全
    20155206 2016-2017-2《Java程序设计》课程总结
    20155206 《Java程序设计》实验四实验报告
    第十二周课堂练习
    J-5 Java语言基础
    C-2 方法重载,比较大小
    C-1 九九乘法表
  • 原文地址:https://www.cnblogs.com/Xinenhui/p/15850552.html
Copyright © 2020-2023  润新知