यदि आप केवल परीक्षण करना चाहते हैं कि क्या आप bash
. के माध्यम से प्रमाणीकरण के बिना MongoDB सर्वर से जुड़ सकते हैं या नहीं , आप निम्न के समान स्क्रिप्ट का उपयोग कर सकते हैं:
#!/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 पता है (होस्ट:पोर्ट/डीबीनाम); mongo
localhost:27017/test
का उपयोग करने के लिए शेल डिफ़ॉल्ट ।
उपयोगकर्ताओं को अनुमति के बिना सूचीबद्ध किया जा सकता है या नहीं, इस पर स्क्रिप्ट एक साधारण जांच करती है।
यदि प्रमाणीकरण ठीक से सक्षम है, तो db.getUsers()
कमांड को एक त्रुटि वापस करनी चाहिए जैसे:
"Error: not authorized on test to execute command { usersInfo: 1.0 }"
नोट:लोकलहोस्ट अपवाद
डिफ़ॉल्ट रूप से (जैसे कि MongoDB 3.0 पर) एक localhost exception
जो आपको पहला उपयोगकर्ता व्यवस्थापक
बनाने की अनुमति देता है localhost
. के माध्यम से कनेक्ट करके परिनियोजन के लिए . एक बार कम से कम एक उपयोगकर्ता जोड़े जाने के बाद, लोकलहोस्ट अपवाद स्वचालित रूप से अक्षम हो जाता है।
यदि आप अपने परिनियोजन की पूर्ण सुरक्षा की जाँच करना चाहते हैं, तो यह निश्चित रूप से MongoDB की समीक्षा करने लायक है। सुरक्षा जांचसूची ।