mongo用户管理

2019-08-13  本文已影响0人  小小了墨

创建用户

> db.createUser(
    {
        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()

参考

参考

查看当前库的所有用户

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

给用户授权

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

> db.grantRolesToUser(username, roles)

参考

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

> db.revokeRolesFromUser(user, 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()

修改自定义角色

> 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
上一篇 下一篇

猜你喜欢

热点阅读