美文网首页
mongodb之内置角色与用户管理

mongodb之内置角色与用户管理

作者: 词穷又词贫 | 来源:发表于2017-11-20 19:46 被阅读19次

    mongodb内置角色:


    图片.png

    用户属于何种角色,可以理解为用户拥有何种权限?
    在创建用户时,是需要绑定到角色。

    角色表中,普通数据库,admin数据库:可以理解为针对某一普通数据库设置用户权限,而设置在admin数据库当中的用户角色,是针对的所有数据库而言。
    举个例子:
    创建一个用户,对hello这个数据拥有all权限(也就是角色表中的dbowner),并且可以对所有数据拥有只读权限(也就是权限表中的readAnyDatabase)。


    错误.png

    普通数据库,意味着在设置用户角色时,db关键字只能是其他创建的数据库
    admin数据库,意味着在设置用户角色时,db关键字只能是admin数据库
    测试权限:
    h1用户只能以admin数据登录,对所有数据库操作权限是readAnyDatabase,对hello数据操作权限是dbOwner
    h1用户不能以hello数据库登录,报错,认证失败
    查看设置的权限:


    图片.png
    h1解释如上
    h2用户只能以hello数据库登录,对hello数据库拥有所有的权限,
    h3用户只能以admin数据库登录,对hello数据库拥有所有的权限,但是需要创建添加一次,不会干扰到数据。
    h3用户创建指令.png

    总结:
    1、创建Mongodb数据的的用户,全部都是保存在admin数据库,system.user中。
    2、admin数据库的角色权限,是针对所有数据库的,建议是在admin数据库状态下创建。
    3、普通数据库的角色权限,是针对某一个数据库的,某数据库状态下创建。
    4、在哪个数据库状态下创建,此用户连接时就连哪个数据库即可。
    需要注意:
    在普通数据库状态下创建admin数据库角色权限,db选择是admin,需要此用户是否有admin库的角色权限,才能创建。
    cli命令行登录数据库:

    # 第一次指定登录数据库,
    mongo --port 27017 -u myadmin -p 'admin' --authenticationDatabase 'admin'
    # 连接上数据库之后
    use admin
    db.auth(username,passwd)
    # 之后就可以
    mongo --host 192.168.2.176
    db.auth
    

    相关文章

      网友评论

          本文标题:mongodb之内置角色与用户管理

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