美文网首页
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