美文网首页
MongoDB用户权限管理

MongoDB用户权限管理

作者: Pig_Y | 来源:发表于2019-07-31 17:10 被阅读0次

    1. 进入MongoDB的shell

    注意:mongo.conf文件中的auth应设置为false
    启动mongo服务

    net start MongoDB
    

    2. 切换数据库

    use admin
    

    3. 创建admin超级管理员用户

    第一次创建用户时应首先创建一个超级管理员用户

    use admin
    db.createUser(
      {
        user: "admin",
        pwd: "password",
        roles: [ { role: "root", db: "admin" } ]
      }
    );
    exit;
    

    user字段,为新用户的名字;
    pwd字段,用户的密码;
    roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。
    db是指定数据库的名字,admin是管理数据库。

    role相关的角色:

    数据库用户角色:read、readWrite;
    数据库管理角色:dbAdmin、dbOwner、userAdmin;
    集群管理角色:clusterAdmin、clusterManager、4. clusterMonitor、hostManage;
    备份恢复角色:backup、restore;
    所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    超级用户角色:root
    内部角色:__system

    4. 修改mongo.conf配置

    完成这一步操作之后,退出Mongodb,结束MongoDB服务

    net stop MongDB
    

    修改mongo.conf中的的authtrue,启动MongoDB服务

    net start MongDB
    

    5. 登录超级用户创建新用户

    用之前创建的user进行authentication验证登录

    mongo -u admin -p password --authenticationDatabase admin
    

    成功登录之后,再创建拥有其他role的其他user, 例如这里我创建一个有test数据库所有权限的testuser:

    use test
    db.createUser(
      {
        user: "testuser",
        pwd: "test",
        roles: [ { role: "dbAdmin", db: "test" } ]
      }
    );
    

    6. 查看创建的用户

    show users 或 db.system.users.find() 或 db.runCommand({usersInfo:"userName"})
    

    至此就可以使用新建的用户登录MongoDB啦

    7. 修改密码

    use admin
    db.changeUserPassword("username", "xxx")
    

    可以下载MongoDB的可视化工具 Robo 3T,下载链接https://robomongo.org/

    相关文章

      网友评论

          本文标题:MongoDB用户权限管理

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