MongoDB-4:用户管理

一、简介

    1.mongdb中有一个admin的数据库,牵涉到服务器配置层面的操作,需先切换到admin数据库,

      即use admin 进入超级用户管理模式。

    2.mongo的用户是以数据库为单位来建立的,每个数据库有自己的管理员。

    3.在设置用户时,需先在admin数据库下建立管理员,这个管理员登陆后,相等于超级管理员。  

二、常用操作

    1.切换到超级管理模式

        use admin

    2.创建超级管理员

        db.createUser({user:'chenfenli', pwd:'123456', roles:['userAdminAnyDatabase']});        

        role类型:

            readAnyDatabase 任何数据库的只读权限(和read相似)

            readWriteAnyDatabase 任何数据库的读写权限(和readWrite相似)

            userAdminAnyDatabase 任何数据库用户的管理权限(和userAdmin相似)

            dbAdminAnyDatabase 任何数据库的管理权限(dbAdmin相似)

        注意:添加用户后,再次退出并登录,发现依然可以直接读数据库?

        原因:mongodb服务器启动时,默认不需要认证的

        解决:重启服务器,启动服务器时指定 --auth

    3.创建用户

        1) 进入超级管理员模式并验证:

            use admin

            db.auth('用户名','密码')

        2)查看数据库

             

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
shop    0.000GB

        3) 进入到shop数据库

            use shop

        4) 查看shop对应的用户

> show users
{
    "_id" : "shop.xiaocheng2",
    "user" : "xiaocheng2",
    "db" : "shop",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "shop"
        }
    ]
}

        5)创建用户

            db.createUser({user:'xiaocheng3',pwd:'123456',roles:[{role:'readWrite',db:'shop'}]})

Successfully added user: {
    "user" : "xiaocheng3",
    "roles" : [
        {
            "role" : "readWrite",
            "db" : "shop"
        }
    ]
}

        6)登录

            db.auth('xiaocheng2','123456')

> db.auth('xiaocheng2','123456')
1
            1表示登录成功

        7)查询

            show collections

> show collections
test
--------------------- 

你可能感兴趣的:(mongo)