zoukankan      html  css  js  c++  java
  • mongodb的账户管理

    超级管理员
    为了更加安全的访问 mongodb,需要访问者提供用户名和密码,于是需要在mongodb 中创建用户
    采用了角色-用户-数据库的安全管理方式

    常用的的系统角色有:
    root: 只在 admin 数据中可使用,超级账户,超级权限。root又称dbOwner
    Read: 允许用户读取指定的数据库
    readWrite: 允许用户读写指定的数据库

    一、创建超级用户
    以windows为例
    1、启动不鉴权的mongo数据库服务
    mongod --port 27017 --dbpath E:mongo_db

    2、创建进入使用admin库名
    use admin

    3、创建admin用户,密码123,角色为root身份,管理admin数据库

    db.createUser(
        {
           user: 'admin',
           pwd: '123',
           roles:[{role:'root',db:'admin'}] 
        }
    )
    

      

    4、关闭mongo数据库服务
    ctrl+c

    5、带鉴权方式启动
    mongod --port 27017 --dbpath E:mongo_db --auth

    6、使用认证某个数据方式终端连接
    mongo -u admin -p 123 --authenticationDatabase admin
    此后的admin可以查看任何数据

    延伸:
    1、使用无鉴权方式连接数据库
    mongo --port 27017
    此后的用户无法查看任何数据

    2、如果使用不鉴权方式启动mongo数据库服务
    mongod --port 27017 --dbpath E:mongo_db
    则admin账号设置是无效的。

    二、普通用户管理
    使用超级管理员登录,然后进入用户管理操作
    查看当前数据库的用户
    use demo
    show users
    创建普通 用户

    db.createUser(
        {
           user: 'xingyeah',
           pwd: '123',
           roles:[{role:'readWrite',db:'demo'}] 
        }
    )
    

      

    退出 root 连接 使用 xignyeah 登录
    mongo -u xingyeah -p 123 --authenticationDatabase
    切换数据库,执行命令查看效果

    三、修改密码和角色
    yoghurt:可以修改密码, 或者roles 属性

    # 修改密码
    db.updateUser('xingyeah',{pwd: '456'})

    # 修改属性
    db.updateUser('xingyeah',{roles:[{role: 'read',db:'demo'}]})


    四、常见报错
    Linux
    启用安全认证
    修改配置文件
    sudo vi /etc/mongod.conf
    启用身份验证
    注意: keys 和 values 之间一定要加空格,否则会解析报错
    security:
    authorization enabled

     
  • 相关阅读:
    Vue 常用指令
    Vue起飞前的准备
    Django ORM 高性能查询优化
    Django 缓存、序列化、信号
    关于Django ModelForm渲染时间格式问题
    Django自定义分页并保存搜索条件
    Docker容器中用户权限管理
    Linux三种SSH协议登陆方式
    Docker部署Nextcloud私有网盘
    Zabbix官方部署搭建
  • 原文地址:https://www.cnblogs.com/andy9468/p/12614270.html
Copyright © 2011-2022 走看看