美文网首页
mongo用户管理

mongo用户管理

作者: 小小了墨 | 来源:发表于2019-08-13 11:41 被阅读0次

    创建用户

    > db.createUser(
        {
            user: '',
            pwd: '',
            customData: ''
            roles: [
                {
                    role: '',
                    db: ''
                }
            ]
        }
    )
    
    • user: 用户名。
    • pwd:密码。
    • customData:任意信息,可以为该用户的提示信息,介绍用户什么的。
    • roles:指定用户的角色,可以为空数组设置为空角色
    • role:指定角色
    • db:指定数据库

    参考

    内置角色

    1. 数据库用户角色:read, readWrite
    2. 数据库管理角色:dbAdmin, dbOwner, userAdmin
    3. 集群管理角色:clusterAdmin, clusterManager, clusterMonitor, hostManager
    4. 备份恢复角色:backup, restore
    5. 所有数据库角色:readAnyDatabase, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase
    6. 超级用户角色:root
    7. 内部角色:__system

    参考

    新增自定义角色

    > db.createRole(role, writeConcern)
    

    由于本人使用的是内置的,所以这里就一笔带过

    参考

    认证用户

    创建完用户后,可以通过认证来确定是否创建或者修改成功

    > db.auth(user, pwd)
    

    返回的是1,则认证成功,是0则失败

    参考

    删除用户

    > db.dropUser(userName)
    # 或者 删除当前库的所有用户
    > db.dropAllUser()
    
    • userName(string):删除的用户名

    参考

    参考

    查看当前库的所有用户

    > show users
    # 或者
    > db.system.users.find()
    

    给用户授权

    如果在创建的时候,roles里面的权限没有或者是想额外再添加

    > db.grantRolesToUser(username, roles)
    
    • username(sting):用户名
    • roles(array):要授予用户的附加角色的数组

    参考

    取消用户某个或者多个角色

    > db.revokeRolesFromUser(user, roles)
    
    • roles:若处于同数据库,则可以直接写角色,否则要全写
    > db.revokeRolesFromUser('test', [
        'readWrite'
    ])
    # 或者
    > db.revokeRolesFromUser('test', [
        { role: 'readWrite', db: 'testDatabase' }
    ])
    

    修改用户信息

    会完全替换调创建时的信息

    > db.updateUser(username, update)
    

    修改用户密码

    > changeUserPassword(username, password)
    

    参数都是string类型

    参考

    查看用户拥有的角色

    > db.getUser(username)
    

    查看角色权限

    > db.getRole(rolename, arg)
    # 查看所有的
    > db.getRoles()
    
    • arg(object):
      1. showBuiltinRoles:默认为false,仅显示用户定义的角色,为true时,显示中还包含内置角色
      2. showPrivileges:默认为false,仅显示该角色继承权限的角色,为true时,返回从其他角色继承的和直接定义的权限

    修改自定义角色

    > db.updateRole(rolename, update)
    

    删除自定义角色

    > db.dropRole(rolename)
    # 全部自定义角色删除
    > db.dropAllRoles()
    

    给mongo设置权限校验

    找到对应的mongo目录下的mongod.conf

    本人是用的centos7的yum安装的,所以在/etc/mongod.conf

    # 将security放开
    security:
      authorization: enabled # 注意此处缩进
    

    如果没有关闭防火墙或者放开端口,也可能mongo服务起不来

    $ firewall-cmd --zone=public --permanent --add-port=27017/tcp 
    # 重启
    $ firewall-cmd --reload
    # 查看是否放开
    $ firewall-cmd --list-ports
    

    然后重启或者启动服务

    $ systemctl start mongod.service
    # 或者
    $ systemctl restart mongod.service
    

    相关文章

      网友评论

          本文标题:mongo用户管理

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