MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да разберете дали Mongodb работи в режим на удостоверяване в скрипта на обвивката?

Ако просто искате да тествате дали можете да се свържете към 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 Контролен списък за сигурност .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB findAndModify()

  2. Отпечатване на изхода на заявката на Mongo във файл, докато сте в mongo shell

  3. MongoDB $acosh

  4. Как да изчисля разстоянието на маршрута между много GeoJSON точки в MongoDB?

  5. Много към много актуализиране в MongoDB без транзакции