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启动服务,即可完成并使用。

  • 相关阅读:
    Context对象还提供了相应的属性来调整线条及填充风格
    基本类型互相之间转化可以用Covent类来实现。
    chfn是用来改变你的finger讯息
    在Web根目录下建立testdb.php文件内容
    springmvc接口接收json类型参数设置
    表单类型参数样板
    git push 免密码
    git提交之后没有push,代码被覆盖之后恢复
    测试流程总结
    linux 更改时区
  • 原文地址:https://www.cnblogs.com/Knight7971/p/10149643.html
Copyright © 2011-2022 走看看