zoukankan      html  css  js  c++  java
  • mongodb 开启认证方式

    一、单实例情况

    1.启动服务(不启用--auth参数)

    2.创建超级管理员账户

    use admin
     db.addUser( { user: "admin", pwd: "admin", roles: [ "userAdminAnyDatabase" ] } )
    或db.addUser( { user: "root", pwd: "root", roles: [ "root" ] } )

    3.再重启mongodb,重启mongod时加--auth或者在配置文件中加auth=ture就可以开启认证(生产环境,不要用--auth参数启用认证,一但数据库重启,数据库将不再认证)

    4.使用管理员账号进入Mongodb

    有两种方式可以进行认证

    (1)在启用mongo shell时进行认证

    mongo localhost:27017admin -u admin  -p admin

    (2)进入到mongo shell之后进行认证

    useadmin
    db.auth('admin','admin')

    之后就可以为数据库添加新用户

    二、副本集开启认证

    副本集总体思路是用户名、密码和keyfile文件,keyfile需要各个副本集服务启动时加载而且要是同一文件,然后在操作库是需要用户名、密码

    KeyFile文件必须满足条件:

    (1)至少6个字符,小于1024字节

    (2)认证时候不考虑文件中空白字符

    (3)连接到副本集的成员和mongos进成的keyfile文件内容必须一样

    (4)必须是base64编码,但是不能有等号

    (5)文件权限必须是x00,也就是说,不能分配任何权限给group成员和other成员

    1.生成keyFile文件(使用openssl生成)

    openssl rand -base64 100 > /data/mongodb/etc/key_keyfile
    chmod 600 key_keyfile

    2.将生成好的keyFile文件scp到所有的副本集机器上

    文件路径可以不一样,权限都要改

    3.所有副本集机器上的配置文件指定keyFile路径(没有keyFile的机器将无法加入副本集)

    开启了keyFile,隐含就开启了auth,这个时候连接副本集就需要进行认证了,否则只能通过本地例外方式操作数据库。

    在副本集中添加用户需要在服务未加--keyFile参数启动的情况加按照单实例方法添加(访问任意一个副本器操作,其他副本集会自动同步),账户添加、授权成功后重新加入keyFile启动服务,即可完成并使用。

  • 相关阅读:
    HttpServletResponse
    非易失性FRAM中的预充电操作
    Everspin MRAM优化系统能耗
    工业和消费者HMI系统中的扩展内存
    STT结构涡轮增压MRAM
    将FRAM存储器芯片集成到汽车EDR设计中
    ros编译时报Invoking "make -j4 -l4" failed
    python安装第三方库xlrd失败、更新pip失败
    python的pip命令安装request库失败、在pycharm里File>setting...>Python Interpreter里右上角点击加号搜索request点击安装也失败
    selenium之unitest库
  • 原文地址:https://www.cnblogs.com/Knight7971/p/10149643.html
Copyright © 2011-2022 走看看