伍-MongoDB登陆那些小事

作者: 小秉子 | 来源:发表于2018-11-27 00:17 被阅读1次

    关于MongoDB,刚从3.X换成了4.X,其实已经不是很想懂到底什么回事了,引擎不对啊、常用的工具无法登陆啊一堆问题,不过其实这些都不是很是问题,顶多把数据库删掉重做呗(这是不负责任的)。
    重申一次,没什么事千万别直接升级,请先备份

    1、关于MongoDB跨版本登陆

    服务器端运行4.X的时候,客户端使用3.X是无法登陆的,完事。

    2、MongoDB权限的问题

    首先,MongoDB有许多权限,以下有说明:

    Built-In Roles(内置角色):
    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)
    7. 内部角色:__system

    引用自 追不上老鼠的猫的博客,不过估计他也是引用其他人的(因为看到网上一堆一样的)。


    关键的只是上面加粗的两个权限,其中只赋予dbOwner权限是不能读写的,必须同时赋予readWrite权限。

    P.S. 常用命令

    以下这些也是抄自上述的博客:

    1. 创建用户
    > use admin
    switched to db admin
    > db.createUser(
    ...   {
    ...     user: "dba",
    ...     pwd: "dba",
    ...     roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    ...   }
    ... )
    Successfully added user: {
        "user" : "dba",
        "roles" : [
            {
                "role" : "userAdminAnyDatabase",
                "db" : "admin"
            }
        ]
    }
    

    不行了,我还是引用百度

    1. 删除用户
    db.dropUser('usertest')
    
    1. 修改权限
    db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
    #注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它 
    #则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()
    ------------------------------------------------------------------------------------------
    db.grantRolesToUser("usertest", [{role:"readWrite", db:"testDB"},{role:"read", db:"testDB"}])   # 修改权限
    db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}])   # 删除权限:
    
    P.S.. 我还是去冲凉吧。

    相关文章

      网友评论

        本文标题:伍-MongoDB登陆那些小事

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