Ако просто искате да тествате дали можете да се свържете към MongoDB сървър без удостоверяване чрез bash
, можете да използвате скрипт, подобен на следния:
#!/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
Примерен резултат:
$ ./isAuthEnabled.sh localhost:27017
mongod auth is ENABLED
$ ./isAuthEnabled.sh localhost:27777
mongod auth is NOT enabled
Единственият параметър за този скрипт е незадължителен адрес на MongoDB, към който да се свържете (host:port/dbname); mongo
shell по подразбиране използва localhost:27017/test
.
Скриптът прави проста проверка дали потребителите могат да бъдат изброени без разрешение.
Ако удостоверяването е правилно разрешено, db.getUsers()
командата трябва да върне грешка като:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
Забележка:Изключение за локален хост
По подразбиране (както при MongoDB 3.0) има localhost exception
което ви позволява да създадете първи потребителски администратор
за внедряване чрез свързване чрез localhost
. След като бъде добавен поне един потребител, изключението за локален хост автоматично се дезактивира.
Ако искате да проверите пълната сигурност на вашето внедряване, определено си струва да прегледате MongoDB Контролен списък за сигурност .