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í .