zoukankan      html  css  js  c++  java
  • 第四部分MongoDB数据库和架构管理 简单

    第四部分 管理篇
    数据导出 数据导入
    数据备份 数据恢复
    用户安全与认证

    数据导出 数据导入
    作为DBA(管理员),经常会碰到导入导出数据的需求

    数据导入 mongoexport
    数据导出 mongoimport

    mongoexport -d test -c collection -o 导出的文件名
    参数说明:
    -d 数据库名称
    -c 集合名称
    -o 导出的文件名称

    mongoimport -d test -c collection 文件名


    数据备份 数据恢复
    作为DBA(管理员),数据备份是非常重要的事,一起来看看数据备份和恢复的工具
    数据备份 mongodump
    数据恢复 mongorestore

    备份test数据库
    mongodump -d test
    此时会在当前目录下默认创建一个dump目录,用于存放备份出来的文件也可以指定备分存储放的目录
    后面加上-o my_mongodb_dump


    mongorestore -d test -o mydump/test/
    如果验证可先删除my_mongodb库,或指明-drop叁数,就可以在恢复的时候先后再向插入数据

    单个集合的备份是可以成功
    但单个集合的恢复不成功
    mongodump -d test -c c5 -o mydump/c5
    mongorestore -d test -c c5 mydump/c5

    成功了这样写才对
    mongorestore -d test mydump/c5/test OK 不用加-c 参数,因为并没有c5已经被删除了


    安全与认证 == 用户授权
    每个MongoDB实例中的数据库都有许多用户,如果启用了安全性认证后,只有数据认证的用户才可以进行读写操作
    MongoDB默认的启动是不验证用户名和密码的,启动MongoDB后,可以直接用mongo连接上来,对所有的库具有root权限,所以启动的时候指定叁数,可以阻止客户端的访问和连接,
    只需要在启指定--auth参数即可
    mongod --auth


    添加数据管理员
    use admin;
    db.addUser("root":"123");
    个人理解:
    管理员分为系统管理员和数据库管理员
    系统管理员必须添加到admin数组库中,
    use admin;
    db.addUser("root","123456");

    然后用
    mongo -uroot -p123456 localhost:27017/admin

    然后为其它数据库设置管理员
    use test
    db.addUser("user1","123456");
    现在就能用user1来管理test数据库了
    可以通过db.system.users.find();来查看数据库中的所用管理员信息

    mongo -uuser1 -p123456 localhost:27017/test

    为什么还可以登陆呢?在最初始的时候MongoDB都默认有一个admin数据库(默认是空的)admin.system.users中将会保存具有管理员权限的用户
    注意: 当admin.system.users中没有添加任何用户时,即使MongoDB启动时添加--auth参数,如果有除admin数据库中添加了用户,此时不进行任何认证依然可以使用任操作,直到你在admin.system.users中添加了一个用户

    建立一个系统root用户
    在admin库中新添一个用户root
    use admin
    db.addUser('root','123');
    db.auth("root",'123');

    建立指定权限用户
    mongoDB也支持为某个特定的数据库来设置用户
    如我们为test库设一个只读的用户user_reader
    db.addUser("user1","pass1",true);
    只要在db.addUser函数的第三个参数国中true即可为只读,只有在test库,有只读的权限

  • 相关阅读:
    【转载】这是炎热小镇慵懒的一天
    【原创】Google的文本内容对比代码
    【原创】你知道Oracle 10G能存多少数据吗
    【原创】一个亿级数据库优化过程
    【原创】关于not in的一些事情
    【原创】自动结束进程脚本
    Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
    Android 解决ListView 和 ScrollView 共存冲突的问题
    使用Symfony2的组件创建自己的PHP框架
    数据管理 ListView SQLite Dialog
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2858365.html
Copyright © 2011-2022 走看看