sql >> Databáze >  >> NoSQL >> MongoDB

Jak zjistit, zda Mongodb běží v auth režimu v shell skriptu?

Pokud chcete jen otestovat, zda se můžete připojit k serveru MongoDB bez ověření přes bash , můžete použít skript podobný následujícímu:

#!/bin/bash

# Connect to MongoDB address (host:port/dbname) specified as first parameter
# If no address specified, `mongo` default will be localhost:27017/test
isAuth=`mongo --eval "db.getUsers()" $1 | grep "not auth"`

if [ -z "$isAuth" ] ;
then
   echo "mongod auth is NOT enabled"
   exit 1
else
   echo "mongod auth is ENABLED"
   exit 0
fi

Příklad výstupu:

$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED

$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled

Jediným parametrem tohoto skriptu je volitelná adresa MongoDB, ke které se lze připojit (host:port/dbname); mongo shell standardně používá localhost:27017/test .

Skript provede jednoduchou kontrolu, zda uživatelé mohou být uvedeni bez povolení.

Pokud je auth správně povoleno, db.getUsers() příkaz by měl vrátit chybu jako:

  "Error: not authorized on test to execute command { usersInfo: 1.0 }"

Poznámka:Výjimka Localhost

Ve výchozím nastavení (jako v MongoDB 3.0) existuje výjimka localhost exception který vám umožní vytvořit prvního administrátora uživatele pro nasazení připojením přes localhost . Jakmile byl přidán alespoň jeden uživatel, výjimka localhost je automaticky zakázána.

Pokud chcete zkontrolovat úplné zabezpečení vašeho nasazení, rozhodně stojí za to si prohlédnout MongoDB Kontrolní seznam zabezpečení .




  1. Proces work-horse byl neočekávaně ukončen RQ a Scrapy

  2. Mongodb - Map-Reduce - Kompletní data nejsou vrácena

  3. Mongo agregace a MongoError:výjimka:BufBuilder se pokusil o grow() na 134217728 bajtů, čímž překročil limit 64 MB

  4. Mangoose spojující data