美文网首页
mongoDB 添加db的用户权限

mongoDB 添加db的用户权限

作者: zcxzcxczcx | 来源:发表于2020-12-22 18:14 被阅读0次

    一、mongoDB用户角色配置

    MongoDB基本的角色

    1.数据库用户角色:read、readWrite;

    2.数据库管理角色:dbAdmin、dbOwner、userAdmin;

    3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

    4.备份恢复角色:backup、restore;

    5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

    6.超级用户角色:root 

    //这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

       其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。

    二、docker 部署mongo步骤

    1、查看可用的 MongoDB 版本:docker search mongo

    2、取最新版的 MongoDB 镜像:docker pull mongo:latest

    3、查看本地镜像: docker images

    4、运行容器:docker run -itd --name mongo -p 27017:27017 mongo --auth

    (ps:加了--auth 则连接mongo的时候要权限认证)

    三、给数据库添加用户权限

    1、给admin数据库添加用户权限:

    docker exec -it mongo mongo admin

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

    Successfully added user: {

    "user" : "admin",

    "roles" : [

    {

    "role" : "userAdminAnyDatabase",

    "db" : "admin"

    },

    "readWriteAnyDatabase"

    ]

    }

    注:添加完用户后可以使用show users或db.system.users.find()查看已有用户

    2、退出mongo客户端

    >exit

    3、连接admin数据库,然后切换到其它数据库,并给其它数据库(这里是first_website)添加用户权限,用户都跟着库走

    docker exec -it mongo mongo admin -u admin -p

    Enter password:123456

    >use first_website

    >db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "first_website" }]})

    Successfully added user: {

    "user" : "root",

    "roles" : [

    {

    "role" : "readWrite",

    "db" : "first_website"

    }

    ]

    }

    4 、再次退出mongo客户端

    >exit

    5 、连接mongo的first_website数据库

    docker exec -it mongo mongo first_website -u root -p

    Enter password:123456


    相关文章

      网友评论

          本文标题:mongoDB 添加db的用户权限

          本文链接:https://www.haomeiwen.com/subject/bcisnktx.html