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

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/Knight7971/p/10149643.html
Copyright © 2011-2022 走看看