MongoDBの(4)のMongoDB認定

MongoDBの認定

シングルノード認証

  • プロフィール:許可:有効
[root@centos7-node4 ~]# vim /data/mongodb/27017/mongodb.conf 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/27017/mongodb.log
storage:
  dbPath: /data/mongodb/27017/
  journal:
    enabled: true
processManagement:
  fork: true
net:
  port: 27017
  bindIp: 0.0.0.0
security:
  authorization: enabled
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27017/mongodb.conf   #启动服务
  • ログインエラー
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017
> use test
switched to db test
> db.mydata.insert({id:1})
WriteCommandError({
        "ok" : 0,
        "errmsg" : "not authorized on test to execute command { insert: \"mydata\", ordered: true, lsid: { id: UUID(\"84740c59-f4ff-4fe5-879d-d10679b0f355\") }, $db: \"test\" }",
        "code" : 13,
        "codeName" : "Unauthorized"
})
> 
  • ソリューション
> use admin
> db.createUser({
... user: "admin",
... pwd: "qwer1234QAZ",
... roles: [ { role: "root",db: "admin" } ]
... })
> use admin
> db.auth('admin','qwer1234QAZ')
> use test
> db.mydata.insert({id:"1"})     #插入数据测试
  • ログイン認証
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017 -uadmin -pqwer1234QAZ --authenticationDatabase admin

レプリカセットの認定

  • キーを使用してデータ・セットの同期コピー
  • レプリカセットは、その後の完了後に設定したユーザーを作成します

証明書準備

[root@centos7-node4 ~]# openssl rand -base64 756 > /data/mongodb/cluster.key
[root@centos7-node4 ~]# chmod 700 /data/mongodb/cluster.key

環境説明

三つのレプリカセットのマシンは、それぞれのポートを設定します。27017,27018,27019は、
シングルノード構成の3つのコピーを持つ最初の私の側:コンフィギュレーション・ファイルとディレクトリの残りの部分は、ポートに対応するように変更することができます

[root@centos7-node4 ~]# mkdir /data/mongodb/{27017,27018,27019} -pv 
[root@centos7-node4 ~]# vim /data/mongodb/27017/mongodb.conf 
systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/27017/mongodb.log
storage:
  dbPath: /data/mongodb/27017/
  journal:
    enabled: true
processManagement:
  fork: true
net:
  port: 27017
  bindIp: 0.0.0.0
replication:
  replSetName: cluster
security:
  keyFile: /data/mongodb/cluster.key
  authorization: enabled
  • サービス開始
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27017/mongodb.conf 
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27018/mongodb.conf 
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27019/mongodb.conf 
  • 初期化
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017
> use admin
> config = { _id:"cluster", members:[ {_id:0,host:"127.0.0.1:27017"}, {_id:1,host:"127.0.0.1:27018"}, {_id:2,host:"127.0.0.1:27019"}] }
> rs.initiate(config)    # 初始化
cluster:SECONDARY> rs.status()
  • 認定コピーが開くように設定します
cluster:PRIMARY> use admin
cluster:PRIMARY> db.createUser({
... user: "admin",
... pwd: "qwer1234QAZ",
... roles: [ {role: "root",db:"admin"} ]
... })

> use admin
> db.auth('admin','qwer1234QAZ')
> use test
> db.mydata.insert({id:"1"})   
  • 認証ログ
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017 -uadmin -pqwer1234QAZ --authenticationDatabase admin

認証構成断片

  • ルータの設定には、認証が必要ですが、構成するキーファイルにはありません。
  • configure認証とキーファイルへconfigsvrとshardsvr必要

おすすめ

転載: blog.51cto.com/13812615/2485758