zoukankan      html  css  js  c++  java
  • MongoDB-权限管理

    mongodb安装的时候并没有设置权限,所以要安装好后手动添加权限,并且mongo服务器在运行的时候开启验证模式

    1、创建超级管理员用户:

        步骤一:

            使用admin数据库(超级管理员账号必须创建在该数据库上), mongodb默认是没有的,要我们手动执行创建一个。

            命令:use admin

        步骤二:

            创建一个root用户,并赋予超级管理员权限root,超级管理员可以管理MongoDB下的所有库以及权限、备份以及集群等操作。超级管理员账号必须创建在admin数据库上。

            命令:db.createUser({user:"root",pwd:"123456",roles:["root"]})

        步骤三:

            为admin库创建一个admin用户,并赋予管理权限。

            命令:db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

        步骤四:

            新建一个库biz,给该库添加一个用户demo,密码:demo,并赋予读写及管理员权限。

            创建biz库:use biz

            创建用户并授权:db.createUser({user:"demo",pwd:"123456",roles:["readWrite","dbAdmin"]})

            测试一下授权是否ok, 返回1表示成功,返回0表示失败:db.auth('demo','123456')

     2、开启验证模式:

        步骤一:

            找到mongo的配置文件mongo.conf添加配置:注意在enabled前面有个空格,一定要加

    security:
        authorization: enabled

        步骤二:

            重启mongo,通过mongo的shell客户端关闭mongo:

    db.shutdownServer()

            启动mongo:

    sudo mongod --config /usr/local/etc/mongod.conf

        步骤三:

            测试一下权限情况,mongo命令连接并尝试用 show dbs查看数据库

    show dbs
    输出:
    [thread1] Error: listDatabases failed:{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
        "code" : 13
    } :

        从输出结果看,执行show dbs没有权限,表示我们配置成功

    3、其他

        3.1、创建look用户,分别在数据库test1和test2有不同的权限:

    db.createUser(user:"look",pwd:"123456",roles:[{db:"test1",role:"read"},{db:"test2",role:"readWrite"}])

        3.2、删除用户,必须在超级管理员用户下操作

            命令:db.dropUser(用户名)

            示例: db.dropUser(look) 

    参考:

        【1】https://www.jianshu.com/p/33e3940db2b2

        【2】https://zhuanlan.zhihu.com/p/24891732

        【3】https://www.cnblogs.com/mymelody/p/5906199.html

  • 相关阅读:
    Scheduler踩坑记录
    关于RedisTemplate的map存储踩坑记录
    关于HashMap的加载因子相关理解
    Mybatis 分页插件PageHelper 遇坑
    Linux 下 Mysql忘记密码重置
    Eclipse MAT和jvisualvm分析内存溢出
    使用jdk自带工具jvisualvm 分析内存dump文件
    EUREKA 删除 or 强制下线/上线 实例
    Idea 远程调试jenkins 项目
    spring 事务传播行为类型
  • 原文地址:https://www.cnblogs.com/happyflyingpig/p/14486778.html
Copyright © 2011-2022 走看看