Enable auth on mongodb-3.2 shard cluster

step 1

start mongodb without access control

# /opt/mongodb/bin/mongod --fork --logpath /var/log/config_mongo.log --configsvr --logappend --dbpath /home/data/config/ --port 1000
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb.log --logappend --dbpath /home/data/node1 --port 100
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb2.log --logappend --dbpath /home/data/node2 --port 200
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb3.log --logappend --dbpath /home/data/node3 --port 300
# /opt/mongodb/bin/mongos --configdb 10.128.10.58:1000 --logappend --fork --logpath /var/log/mongos.log --port 27017

step 2

then login to mongos and create database admin to manage all database on the server

# /opt/mongodb/bin/mongo (using standard port 27017)

MongoDB shell version: 3.2.3
connecting to: test
mongos> use admin
db.createUser(
  {
    user: "usrAdmin",
    pwd: "AdminP4ssw0rd",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }  ]
  }
)

step 3

create KeyFile for auth mongodb

# touch /home/data/source/KeyFile
# chmod 600 /home/data/source/KeyFile
# vi /home/data/source/KeyFile (isi sesuai password)

step 4

stop each instans of mongodb

# killal -9 mongod (or mongos) 

step 5

start each instance mongodb with option –keyFile /home/data/source/KeyFile

# /opt/mongodb/bin/mongod --fork --logpath /var/log/config_mongo.log --configsvr --logappend --dbpath /home/data/config/ --port 1000 --keyFile /home/data/source/KeyFile
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb.log --logappend --dbpath /home/data/node1 --port 100 --keyFile /home/data/source/KeyFile
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb2.log --logappend --dbpath /home/data/node2 --port 200 --keyFile /home/data/source/KeyFile
# /opt/mongodb/bin/mongod --fork --logpath /var/log/mongodb3.log --logappend --dbpath /home/data/node3 --port 300 --keyFile /home/data/source/KeyFile
# /opt/mongodb/bin/mongos --configdb 10.128.10.58:1000 --logappend --fork --logpath /var/log/mongos.log --port 27017 --keyFile /home/data/source/KeyFile

step 6

login to mongos server

# /opt/mongodb/bin/mongo 

MongoDB shell version: 3.2.3
connecting to: test
mongos> use admin
switched to db admin
mongos> db.auth("usrAdmin","AdminP4ssw0rd")
1
mongos>

when you success login to mongodb with user and pass you’re created, so auth is enable.

hope this article help you, thank you

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.